diff --git a/edg/electronics_model/CircuitBlock.py b/edg/electronics_model/CircuitBlock.py index 4e8233dc3..4e3fdaa39 100644 --- a/edg/electronics_model/CircuitBlock.py +++ b/edg/electronics_model/CircuitBlock.py @@ -91,6 +91,16 @@ def footprint(self, refdes: StringLike, footprint: StringLike, pinning: Mapping[ self.assign(self.fp_datasheet, '') +class WrapperFootprintBlock(FootprintBlock): + """Block that has a footprint and optional internal contents, but the netlister ignores internal components. + Useful for, for example, a breakout board where the modelling details are provided by internal chip blocks, + but needs to show up as only a carrier board footprint. + EXPERIMENTAL - API SUBJECT TO CHANGE.""" + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.fp_is_wrapper = self.Metadata("A") # TODO replace with not metadata, eg superclass inspection + + @abstract_block class NetBlock(InternalBlock, NetBaseBlock, Block): def contents(self): diff --git a/edg/electronics_model/NetlistGenerator.py b/edg/electronics_model/NetlistGenerator.py index f61585c23..3698b5655 100644 --- a/edg/electronics_model/NetlistGenerator.py +++ b/edg/electronics_model/NetlistGenerator.py @@ -37,9 +37,23 @@ class Netlist(NamedTuple): nets: List[Net] -Blocks = Dict[TransformUtil.Path, NetBlock] # Path -> Block -Edges = Dict[TransformUtil.Path, List[TransformUtil.Path]] # Port Path -> connected Port Paths -AssertConnected = List[Tuple[TransformUtil.Path, TransformUtil.Path]] +# The concept of board scopes is footprints associated with a scope (defined as a path) that is a board, +# to support multi-board assemblies and virtual components. +# The default (top-level) board has TransformUtil.Path.empty(). +# None board scope means the footprints do not exist (virtual component), eg the associated blocks were for modeling. +class BoardScope(NamedTuple): + path: TransformUtil.Path # root path + footprints: Dict[TransformUtil.Path, NetBlock] # Path -> Block footprint + edges: Dict[TransformUtil.Path, List[TransformUtil.Path]] # Port Path -> connected Port Paths + pins: Dict[TransformUtil.Path, List[NetPin]] # mapping from Port to pad + assert_connected: List[Tuple[TransformUtil.Path, TransformUtil.Path]] + + @classmethod + def empty(cls, path: TransformUtil.Path): # returns a fresh, empty BordScope + return BoardScope(path, {}, {}, {}, []) + + +Scopes = Dict[TransformUtil.Path, Optional[BoardScope]] # Block -> board scope (reference, aliased across entries) ClassPaths = Dict[TransformUtil.Path, List[edgir.LibraryPath]] # Path -> class names corresponding to shortened path name class NetlistTransform(TransformUtil.Transform): @staticmethod @@ -53,28 +67,38 @@ def flatten_port(path: TransformUtil.Path, port: edgir.PortLike) -> Iterable[Tra raise ValueError(f"don't know how to flatten netlistable port {port}") def __init__(self, design: CompiledDesign): - self.blocks: Blocks = {} - self.edges: Edges = {} # as port Paths, including intermediates - self.pins: Dict[TransformUtil.Path, List[NetPin]] = {} # mapping from Port to pad - self.assert_connected: AssertConnected = [] + self.all_scopes = [BoardScope.empty(TransformUtil.Path.empty())] # list of unique scopes + self.scopes: Scopes = {TransformUtil.Path.empty(): self.all_scopes[0]} + self.short_paths: Dict[TransformUtil.Path, List[str]] = {TransformUtil.Path.empty(): []} # seed root self.class_paths: ClassPaths = {TransformUtil.Path.empty(): []} # seed root self.design = design def process_blocklike(self, path: TransformUtil.Path, block: Union[edgir.Link, edgir.LinkArray, edgir.HierarchyBlock]) -> None: + # TODO may need rethought to support multi-board assemblies + scope = self.scopes[path] # including footprint and exports, and everything within a link + internal_scope = scope # for internal blocks + if isinstance(block, edgir.HierarchyBlock): + if 'fp_is_wrapper' in block.meta.members.node: # wrapper internal blocks ignored + internal_scope = None + for block_pair in block.blocks: + self.scopes[path.append_block(block_pair.name)] = internal_scope + for link_pair in block.links: # links considered to be the same scope as self + self.scopes[path.append_link(link_pair.name)] = scope + # generate short paths for children first, for Blocks only main_internal_blocks: Dict[str, edgir.BlockLike] = {} other_internal_blocks: Dict[str, edgir.BlockLike] = {} - if isinstance(block, edgir.HierarchyBlock): - for block_pair in block.blocks: - subblock = block_pair.value - # ignore pseudoblocks like bridges and adapters that have no internals - if not subblock.hierarchy.blocks and 'fp_is_footprint' not in subblock.hierarchy.meta.members.node: - other_internal_blocks[block_pair.name] = block_pair.value - else: - main_internal_blocks[block_pair.name] = block_pair.value + + for block_pair in block.blocks: + subblock = block_pair.value + # ignore pseudoblocks like bridges and adapters that have no internals + if not subblock.hierarchy.blocks and 'fp_is_footprint' not in subblock.hierarchy.meta.members.node: + other_internal_blocks[block_pair.name] = block_pair.value + else: + main_internal_blocks[block_pair.name] = block_pair.value short_path = self.short_paths[path] class_path = self.class_paths[path] @@ -91,17 +115,20 @@ def process_blocklike(self, path: TransformUtil.Path, block: Union[edgir.Link, e for (name, subblock) in other_internal_blocks.items(): self.short_paths[path.append_block(name)] = short_path + [name] self.class_paths[path.append_block(name)] = class_path + [subblock.hierarchy.self_class] + elif isinstance(block, (edgir.Link, edgir.LinkArray)): + for link_pair in block.links: + self.scopes[path.append_link(link_pair.name)] = scope - if 'nets' in block.meta.members.node: + if 'nets' in block.meta.members.node and scope is not None: # add self as a net # list conversion to deal with iterable-once flat_ports = list(chain(*[self.flatten_port(path.append_port(port_pair.name), port_pair.value) for port_pair in block.ports])) - self.edges.setdefault(path, []).extend(flat_ports) + scope.edges.setdefault(path, []).extend(flat_ports) for port_path in flat_ports: - self.edges.setdefault(port_path, []).append(path) + scope.edges.setdefault(port_path, []).append(path) - if 'nets_packed' in block.meta.members.node: + if 'nets_packed' in block.meta.members.node and scope is not None: # this connects the first source to all destinations, then asserts all the sources are equal # this leaves the sources unconnected, to be connected externally and checked at the end src_port_name = block.meta.members.node['nets_packed'].members.node['src'].text_leaf @@ -110,13 +137,13 @@ def process_blocklike(self, path: TransformUtil.Path, block: Union[edgir.Link, e flat_dsts = list(self.flatten_port(path.append_port(dst_port_name), edgir.pair_get(block.ports, dst_port_name))) assert flat_srcs, "missing source port(s) for packed net" for dst_path in flat_dsts: - self.edges.setdefault(flat_srcs[0], []).append(dst_path) - self.edges.setdefault(dst_path, []).append(flat_srcs[0]) + scope.edges.setdefault(flat_srcs[0], []).append(dst_path) + scope.edges.setdefault(dst_path, []).append(flat_srcs[0]) for src_path in flat_srcs: # assert all sources connected for dst_path in flat_srcs: - self.assert_connected.append((src_path, dst_path)) + scope.assert_connected.append((src_path, dst_path)) - if 'fp_is_footprint' in block.meta.members.node: + if 'fp_is_footprint' in block.meta.members.node and scope is not None: footprint_name = self.design.get_value(path.to_tuple() + ('fp_footprint',)) footprint_pinning = self.design.get_value(path.to_tuple() + ('fp_pinning',)) mfr = self.design.get_value(path.to_tuple() + ('fp_mfr',)) @@ -139,14 +166,14 @@ def process_blocklike(self, path: TransformUtil.Path, block: Union[edgir.Link, e ] part_str = " ".join(filter(None, part_comps)) value_str = value if value else (part if part else '') - self.blocks[path] = NetBlock( + scope.footprints[path] = NetBlock( footprint_name, refdes, part_str, value_str, path, self.short_paths[path], - self.class_paths[path], + self.class_paths[path] ) for pin_spec in footprint_pinning: @@ -157,56 +184,63 @@ def process_blocklike(self, path: TransformUtil.Path, block: Union[edgir.Link, e pin_port_path = edgir.LocalPathList(pin_spec_split[1].split('.')) src_path = path.follow(pin_port_path, block)[0] - self.edges.setdefault(src_path, []) # make sure there is a port entry so single-pin nets are named - self.pins.setdefault(src_path, []).append(NetPin(path, pin_name)) + scope.edges.setdefault(src_path, []) # make sure there is a port entry so single-pin nets are named + scope.pins.setdefault(src_path, []).append(NetPin(path, pin_name)) for constraint_pair in block.constraints: - if constraint_pair.value.HasField('connected'): - self.process_connected(path, block, constraint_pair.value.connected) - elif constraint_pair.value.HasField('exported'): - self.process_exported(path, block, constraint_pair.value.exported) - elif constraint_pair.value.HasField('exportedTunnel'): - self.process_exported(path, block, constraint_pair.value.exportedTunnel) - elif constraint_pair.value.HasField('connectedArray'): - for expanded_connect in constraint_pair.value.connectedArray.expanded: - self.process_connected(path, block, expanded_connect) - elif constraint_pair.value.HasField('exportedArray'): - for expanded_export in constraint_pair.value.exportedArray.expanded: - self.process_exported(path, block, expanded_export) - - def process_connected(self, path: TransformUtil.Path, current: edgir.EltTypes, constraint: edgir.ConnectedExpr) -> None: + if scope is not None: + if constraint_pair.value.HasField('connected'): + self.process_connected(path, block, scope, constraint_pair.value.connected) + elif constraint_pair.value.HasField('connectedArray'): + for expanded_connect in constraint_pair.value.connectedArray.expanded: + self.process_connected(path, block, scope, expanded_connect) + elif constraint_pair.value.HasField('exported'): + self.process_exported(path, block, scope, constraint_pair.value.exported) + elif constraint_pair.value.HasField('exportedArray'): + for expanded_export in constraint_pair.value.exportedArray.expanded: + self.process_exported(path, block, scope, expanded_export) + elif constraint_pair.value.HasField('exportedTunnel'): + self.process_exported(path, block, scope, constraint_pair.value.exportedTunnel) + + def process_connected(self, path: TransformUtil.Path, current: edgir.EltTypes, scope: BoardScope, + constraint: edgir.ConnectedExpr) -> None: if constraint.expanded: assert len(constraint.expanded) == 1 - self.process_connected(path, current, constraint.expanded[0]) + self.process_connected(path, current, scope, constraint.expanded[0]) return assert constraint.block_port.HasField('ref') assert constraint.link_port.HasField('ref') self.connect_ports( + scope, path.follow(constraint.block_port.ref, current), path.follow(constraint.link_port.ref, current)) - def process_exported(self, path: TransformUtil.Path, current: edgir.EltTypes, constraint: edgir.ExportedExpr) -> None: + def process_exported(self, path: TransformUtil.Path, current: edgir.EltTypes, scope: BoardScope, + constraint: edgir.ExportedExpr) -> None: if constraint.expanded: assert len(constraint.expanded) == 1 - self.process_exported(path, current, constraint.expanded[0]) + self.process_exported(path, current, scope, constraint.expanded[0]) return assert constraint.internal_block_port.HasField('ref') assert constraint.exterior_port.HasField('ref') self.connect_ports( + scope, path.follow(constraint.internal_block_port.ref, current), path.follow(constraint.exterior_port.ref, current)) - def connect_ports(self, elt1: Tuple[TransformUtil.Path, edgir.EltTypes], elt2: Tuple[TransformUtil.Path, edgir.EltTypes]) -> None: + def connect_ports(self, scope: BoardScope, elt1: Tuple[TransformUtil.Path, edgir.EltTypes], + elt2: Tuple[TransformUtil.Path, edgir.EltTypes]) -> None: """Recursively connect ports as applicable""" if isinstance(elt1[1], edgir.Port) and isinstance(elt2[1], edgir.Port): - self.edges.setdefault(elt1[0], []).append(elt2[0]) - self.edges.setdefault(elt2[0], []).append(elt1[0]) + scope.edges.setdefault(elt1[0], []).append(elt2[0]) + scope.edges.setdefault(elt2[0], []).append(elt1[0]) elif isinstance(elt1[1], edgir.Bundle) and isinstance(elt2[1], edgir.Bundle): elt1_names = list(map(lambda pair: pair.name, elt1[1].ports)) elt2_names = list(map(lambda pair: pair.name, elt2[1].ports)) assert elt1_names == elt2_names, f"mismatched bundle types {elt1}, {elt2}" for key in elt2_names: self.connect_ports( + scope, (elt1[0].append_port(key), edgir.resolve_portlike(edgir.pair_get(elt1[1].ports, key))), (elt2[0].append_port(key), edgir.resolve_portlike(edgir.pair_get(elt2[1].ports, key)))) # don't need to create the bundle connect, since Bundles can't be CircuitPorts @@ -255,14 +289,12 @@ def pin_name_goodness(pin1: TransformUtil.Path, pin2: TransformUtil.Path) -> int return net_prefix + str(best_path) - def run(self) -> Netlist: - self.transform_design(self.design.design) - + def scope_to_netlist(self, scope: BoardScope) -> Netlist: # Convert to the netlist format seen: Set[TransformUtil.Path] = set() nets: List[List[TransformUtil.Path]] = [] # lists preserve ordering - for port, conns in self.edges.items(): + for port, conns in scope.edges.items(): if port not in seen: curr_net: List[TransformUtil.Path] = [] frontier: List[TransformUtil.Path] = [port] # use BFS to maintain ordering instead of simpler DFS @@ -271,7 +303,7 @@ def run(self) -> Netlist: if pin not in seen: seen.add(pin) curr_net.append(pin) - frontier.extend(self.edges[pin]) + frontier.extend(scope.edges[pin]) nets.append(curr_net) pin_to_net: Dict[TransformUtil.Path, List[TransformUtil.Path]] = {} # values share reference to nets @@ -279,7 +311,7 @@ def run(self) -> Netlist: for pin in net: pin_to_net[pin] = net - for (connected1, connected2) in self.assert_connected: + for (connected1, connected2) in scope.assert_connected: if pin_to_net[connected1] is not pin_to_net[connected2]: raise InvalidPackingException(f"packed pins {connected1}, {connected2} not connected") @@ -294,10 +326,16 @@ def run(self) -> Netlist: def port_ignored_paths(path: TransformUtil.Path) -> bool: # ignore link ports for netlisting return bool(path.links) or any([block.startswith('(adapter)') or block.startswith('(bridge)') for block in path.blocks]) - netlist_blocks = [block for path, block in self.blocks.items()] + netlist_footprints = [footprint for path, footprint in scope.footprints.items()] netlist_nets = [Net(name, - list(chain(*[self.pins[port] for port in net if port in self.pins])), + list(chain(*[scope.pins[port] for port in net if port in scope.pins])), [port for port in net if not port_ignored_paths(port)]) for name, net in named_nets.items()] + netlist_nets = [net for net in netlist_nets if net.pins] # prune empty nets + + return Netlist(netlist_footprints, netlist_nets) + + def run(self) -> Netlist: + self.transform_design(self.design.design) - return Netlist(netlist_blocks, netlist_nets) + return self.scope_to_netlist(self.all_scopes[0]) # TODO support multiple scopes diff --git a/edg/electronics_model/RefdesRefinementPass.py b/edg/electronics_model/RefdesRefinementPass.py index f159477b1..5eea99f64 100644 --- a/edg/electronics_model/RefdesRefinementPass.py +++ b/edg/electronics_model/RefdesRefinementPass.py @@ -1,4 +1,4 @@ -from typing import List, Tuple, Dict, Set +from typing import List, Tuple, Dict, Set, Optional from .. import edgir from ..core import CompiledDesign, TransformUtil @@ -23,18 +23,28 @@ def __init__(self, design: CompiledDesign): assert isinstance(board_refdes_prefix, str) self.board_refdes_prefix = board_refdes_prefix + self.scopes: Dict[TransformUtil.Path, Optional[TransformUtil.Path]] = { + TransformUtil.Path.empty(): TransformUtil.Path.empty() + } + self.block_refdes_list: List[Tuple[TransformUtil.Path, str]] = [] # populated in traversal order - self.seen_blocks: Set[TransformUtil.Path] = set() - self.refdes_last: Dict[str, int] = {} + self.refdes_last: Dict[Tuple[TransformUtil.Path, str], int] = {} # (scope, prefix) -> num def visit_block(self, context: TransformUtil.TransformContext, block: edgir.BlockTypes) -> None: - if 'fp_is_footprint' in block.meta.members.node: + scope = self.scopes[context.path] + internal_scope = scope + if 'fp_is_wrapper' in block.meta.members.node: # wrapper internal blocks ignored + internal_scope = None + + for block_pair in block.blocks: + self.scopes[context.path.append_block(block_pair.name)] = internal_scope + + if 'fp_is_footprint' in block.meta.members.node and scope is not None: refdes_prefix = self.design.get_value(context.path.to_tuple() + ('fp_refdes_prefix',)) assert isinstance(refdes_prefix, str) - refdes_id = self.refdes_last.get(refdes_prefix, 0) + 1 - self.refdes_last[refdes_prefix] = refdes_id - assert context.path not in self.seen_blocks + refdes_id = self.refdes_last.get((scope, refdes_prefix), 0) + 1 + self.refdes_last[(scope, refdes_prefix)] = refdes_id self.block_refdes_list.append((context.path, self.board_refdes_prefix + refdes_prefix + str(refdes_id))) def run(self) -> List[Tuple[TransformUtil.Path, str]]: diff --git a/edg/electronics_model/__init__.py b/edg/electronics_model/__init__.py index 0724f6906..3a26681ca 100644 --- a/edg/electronics_model/__init__.py +++ b/edg/electronics_model/__init__.py @@ -1,6 +1,6 @@ from ..core import * -from .CircuitBlock import FootprintBlock, CircuitPortBridge, CircuitPortAdapter, NetBlock +from .CircuitBlock import FootprintBlock, WrapperFootprintBlock, CircuitPortBridge, CircuitPortAdapter, NetBlock from .VoltagePorts import CircuitPort from .Units import Farad, uFarad, nFarad, pFarad, MOhm, kOhm, Ohm, mOhm, Henry, uHenry, nHenry diff --git a/edg/electronics_model/test_netlist_wrapper.py b/edg/electronics_model/test_netlist_wrapper.py new file mode 100644 index 000000000..383dc41ff --- /dev/null +++ b/edg/electronics_model/test_netlist_wrapper.py @@ -0,0 +1,67 @@ +import unittest +from ..core import Block, TransformUtil +from .test_netlist import NetlistTestCase, TestFakeSource, TestFakeSink, NetBlock, Net, NetPin +from . import WrapperFootprintBlock, VoltageSink + + +class SinkWrapperBlock(WrapperFootprintBlock): + """Wrapper block with a single footprint for two internal sinks whose footprints are ignored.""" + def __init__(self) -> None: + super().__init__() + + self.pos = self.Port(VoltageSink.empty()) + self.neg = self.Port(VoltageSink.empty()) + + def contents(self) -> None: + super().contents() + + self.model1 = self.Block(TestFakeSink()) + self.model2 = self.Block(TestFakeSink()) + self.vpos = self.connect(self.pos, self.model1.pos, self.model2.pos) + self.gnd = self.connect(self.neg, self.model1.neg, self.model2.neg) + + self.footprint( # only this footprint shows up + 'L', 'Inductor_SMD:L_0603_1608Metric', # distinct footprint and value from internal blocks + { + '1': self.pos, + '2': self.neg + }, + value='100' + ) + + +class TestWrapperCircuit(Block): + def contents(self) -> None: + super().contents() + + self.source = self.Block(TestFakeSource()) + self.sink = self.Block(SinkWrapperBlock()) + + self.vpos = self.connect(self.source.pos, self.sink.pos) + self.gnd = self.connect(self.source.neg, self.sink.neg) + + +class NetlistWrapperTestCase(unittest.TestCase): + def test_warpper_netlist(self) -> None: + net = NetlistTestCase.generate_net(TestWrapperCircuit) + + self.assertIn(NetBlock('Inductor_SMD:L_0603_1608Metric', 'L1', '', '100', + ['sink'], ['sink'], + ['edg.electronics_model.test_netlist_wrapper.SinkWrapperBlock']), net.blocks) + self.assertEqual(len(net.blocks), 2) # should only generate top-level source and sink + + self.assertEqual(len(net.nets), 2) # ensure empty nets pruned + self.assertIn(Net('vpos', [ # ensure extraneous nets not generated + NetPin(['source'], '1'), + NetPin(['sink'], '1') + ], [ + TransformUtil.Path.empty().append_block('source').append_port('pos'), + TransformUtil.Path.empty().append_block('sink').append_port('pos'), + ]), net.nets) + self.assertIn(Net('gnd', [ + NetPin(['source'], '2'), + NetPin(['sink'], '2') + ], [ + TransformUtil.Path.empty().append_block('source').append_port('neg'), + TransformUtil.Path.empty().append_block('sink').append_port('neg'), + ]), net.nets) diff --git a/edg/parts/Distance_Vl53l0x.py b/edg/parts/Distance_Vl53l0x.py index 64772e189..ee2b0435a 100644 --- a/edg/parts/Distance_Vl53l0x.py +++ b/edg/parts/Distance_Vl53l0x.py @@ -2,47 +2,31 @@ from .JlcPart import JlcPart -class Vl53l0x_DeviceBase(): - """Shared common definitions for VL53L0x devices""" - @staticmethod - def _vdd_model() -> VoltageSink: - return VoltageSink( +class Vl53l0x_Device(InternalSubcircuit, JlcPart, FootprintBlock): + def __init__(self) -> None: + super().__init__() + + self.vdd = self.Port(VoltageSink( voltage_limits=(2.6, 3.5) * Volt, current_draw=(3, 40000) * uAmp # up to 40mA including VCSEL when ranging - ) + ), [Power]) + self.vss = self.Port(Ground(), [Common]) - @staticmethod - def _gpio_model(vss: Port[GroundLink], vdd: Port[VoltageLink]) -> DigitalBidir: # TODO: the datasheet references values to IOVDD, but the value of IOVDD is never stated. - # This model assumes that IOVDD = Vdd - return DigitalBidir.from_supply( - vss, vdd, + gpio_model = DigitalBidir.from_supply( # This model assumes that IOVDD = Vdd + self.vss, self.vdd, voltage_limit_abs=(-0.5, 3.6), # not referenced to Vdd! input_threshold_factor=(0.3, 0.7), ) - - @staticmethod - def _i2c_io_model(vss: Port[GroundLink], vdd: Port[VoltageLink]) -> DigitalBidir: - return DigitalBidir.from_supply( - vss, vdd, - voltage_limit_abs=(-0.5, 3.6), # not referenced to Vdd! - input_threshold_abs=(0.6, 1.12), - ) - - -class Vl53l0x_Device(Vl53l0x_DeviceBase, InternalSubcircuit, JlcPart, FootprintBlock): - def __init__(self) -> None: - super().__init__() - - self.vdd = self.Port(self._vdd_model(), [Power]) - self.vss = self.Port(Ground(), [Common]) - - gpio_model = self._gpio_model(self.vss, self.vdd) self.xshut = self.Port(DigitalSink.from_bidir(gpio_model)) self.gpio1 = self.Port(DigitalSingleSource.low_from_supply(self.vss), optional=True) # TODO: support addresses, the default is 0x29 though it's software remappable - self.i2c = self.Port(I2cTarget(self._i2c_io_model(self.vss, self.vdd)), [Output]) + self.i2c = self.Port(I2cTarget(DigitalBidir.from_supply( + self.vss, self.vdd, + voltage_limit_abs=(-0.5, 3.6), # not referenced to Vdd! + input_threshold_abs=(0.6, 1.12), + )), [Output]) def contents(self): super().contents() @@ -69,76 +53,56 @@ def contents(self): self.assign(self.actual_basic_part, False) -@abstract_block_default(lambda: Vl53l0x) -class Vl53l0xBase(Resettable, DistanceSensor, Block): - """Abstract base class for VL53L0x devices""" - def __init__(self) -> None: +class Vl53l0x(DistanceSensor, Resettable, GeneratorBlock): + """Time-of-flight laser ranging sensor, up to 2m""" + def __init__(self): super().__init__() + self.ic = self.Block(Vl53l0x_Device()) + self.gnd = self.Export(self.ic.vss, [Common]) + self.pwr = self.Export(self.ic.vdd, [Power]) - self.gnd = self.Port(Ground.empty(), [Common]) - self.pwr = self.Port(VoltageSink.empty(), [Power]) + self.i2c = self.Export(self.ic.i2c) - self.i2c = self.Port(I2cTarget.empty()) self.int = self.Port(DigitalSingleSource.empty(), optional=True, doc="Interrupt output for new data available") - - -class Vl53l0xConnector(Vl53l0x_DeviceBase, Vl53l0xBase, GeneratorBlock): - """Connector to an external VL53L0X breakout board. - Uses the pinout from the Adafruit product: https://www.adafruit.com/product/3317 - This has an onboard 2.8v regulator, but thankfully the IO tolerance is not referenced to Vdd""" - def contents(self): - super().contents() self.generator_param(self.reset.is_connected(), self.int.is_connected()) def generate(self): super().generate() - self.conn = self.Block(PassiveConnector(length=6)) - self.connect(self.pwr, self.conn.pins.request('1').adapt_to(self._vdd_model())) - self.connect(self.gnd, self.conn.pins.request('2').adapt_to(Ground())) - - i2c_io_model = self._i2c_io_model(self.gnd, self.pwr) - self.connect(self.i2c.scl, self.conn.pins.request('3').adapt_to(i2c_io_model)) - self.connect(self.i2c.sda, self.conn.pins.request('4').adapt_to(i2c_io_model)) - self.i2c.init_from(I2cTarget(DigitalBidir.empty(), [])) - - gpio_model = self._gpio_model(self.gnd, self.pwr) if self.get(self.reset.is_connected()): - self.connect(self.reset, self.conn.pins.request('6').adapt_to(gpio_model)) + self.connect(self.reset, self.ic.xshut) else: - self.connect(self.pwr.as_digital_source(), self.conn.pins.request('6').adapt_to(gpio_model)) + self.connect(self.pwr.as_digital_source(), self.ic.xshut) if self.get(self.int.is_connected()): - self.connect(self.int, self.conn.pins.request('5').adapt_to( - DigitalSingleSource.low_from_supply(self.gnd) - )) - - -class Vl53l0x(Vl53l0xBase, GeneratorBlock): - """Time-of-flight laser ranging sensor, up to 2m""" - def contents(self): - super().contents() - self.ic = self.Block(Vl53l0x_Device()) - self.connect(self.pwr, self.ic.vdd) - self.connect(self.gnd, self.ic.vss) - - self.connect(self.i2c, self.ic.i2c) - self.generator_param(self.reset.is_connected(), self.int.is_connected()) + self.connect(self.int, self.ic.gpio1) # Datasheet Figure 3, two decoupling capacitors self.vdd_cap = ElementDict[DecouplingCapacitor]() self.vdd_cap[0] = self.Block(DecouplingCapacitor(0.1 * uFarad(tol=0.2))).connected(self.gnd, self.pwr) self.vdd_cap[1] = self.Block(DecouplingCapacitor(4.7 * uFarad(tol=0.2))).connected(self.gnd, self.pwr) + +class Vl53l0xConnector(Vl53l0x, WrapperFootprintBlock): + """Connector to an external VL53L0X breakout board. + Uses the pinout from the Adafruit product: https://www.adafruit.com/product/3317 + This has an onboard 2.8v regulator, but thankfully the IO tolerance is not referenced to Vdd + + TODO: not completely correct that this should extend the application circuit""" def generate(self): super().generate() - if self.get(self.reset.is_connected()): - self.connect(self.reset, self.ic.xshut) - else: - self.connect(self.pwr.as_digital_source(), self.ic.xshut) + self.footprint( + 'J', 'Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical', + { + '1': self.pwr, + '2': self.gnd, + '3': self.i2c.scl, + '4': self.i2c.sda, + '5': self.ic.gpio1, + '6': self.ic.xshut + }, + ) - if self.get(self.int.is_connected()): - self.connect(self.int, self.ic.gpio1) class Vl53l0xArray(DistanceSensor, GeneratorBlock): """Array of Vl53l0x with common I2C but individually exposed XSHUT pins and optionally GPIO1 (interrupt).""" @@ -158,9 +122,9 @@ def __init__(self, count: IntLike, *, first_reset_fixed: BoolLike = False): def generate(self): super().generate() - self.elt = ElementDict[Vl53l0xBase]() + self.elt = ElementDict[Vl53l0x]() for elt_i in range(self.get(self.count)): - elt = self.elt[str(elt_i)] = self.Block(Vl53l0xBase()) + elt = self.elt[str(elt_i)] = self.Block(Vl53l0x()) self.connect(self.pwr, elt.pwr) self.connect(self.gnd, elt.gnd) self.connect(self.i2c, elt.i2c) diff --git a/edg/parts/Ina219.py b/edg/parts/Ina219.py index dfcaac705..207c41f42 100644 --- a/edg/parts/Ina219.py +++ b/edg/parts/Ina219.py @@ -1,5 +1,5 @@ -from edg import * -from edg.parts.JlcPart import JlcPart +from ..abstract_parts import * +from .JlcPart import JlcPart class Ina219_Device(InternalSubcircuit, JlcPart, FootprintBlock, Block): diff --git a/edg/parts/StepperDriver_A4988.py b/edg/parts/StepperDriver_A4988.py index ab5a08f74..716cd4b15 100644 --- a/edg/parts/StepperDriver_A4988.py +++ b/edg/parts/StepperDriver_A4988.py @@ -108,6 +108,7 @@ def contents(self) -> None: class A4988(BrushedMotorDriver, GeneratorBlock): + """Bipolar stepper motor driver with microstepping (1:2/4/8/16) and current limiting. 8-35V input, up to 2A.""" @init_in_parent def __init__(self, step_resolution: IntLike = 16, itrip: RangeLike = 1*Amp(tol=0.15), @@ -202,3 +203,102 @@ def generate(self) -> None: self.connect(self.sleep, self.ic.sleep) else: self.connect(self.pwr_logic.as_digital_source(), self.ic.sleep) + + +class PololuA4988(WrapperFootprintBlock, GeneratorBlock): + """Pololu breakout board for the A4988 stepper driver. Adjustable current limit with onboard trimpot.""" + @init_in_parent + def __init__(self, step_resolution: IntLike = 16): + super().__init__() + self.step_resolution = self.ArgParameter(step_resolution, doc="microstepping resolution (1, 2, 4, 8, or 16)") + self.generator_param(self.step_resolution) + + self.model = self.Block(A4988_Device()) + self.gnd = self.Export(self.model.gnd, [Common]) + self.pwr = self.Export(self.model.vbb1) + self.pwr_logic = self.Export(self.model.vdd) + + self.step = self.Export(self.model.step) + self.dir = self.Export(self.model.dir) + + self.enable = self.Port(DigitalSink.empty(), optional=True, doc="disables FET outputs when high") + self.reset = self.Port(DigitalSink.empty(), optional=True, doc="forces translator to Home state when low") + self.sleep = self.Port(DigitalSink.empty(), optional=True, doc="disables device (to reduce current draw) when low") + self.generator_param(self.enable.is_connected(), self.reset.is_connected(), self.sleep.is_connected()) + + self.out1a = self.Export(self.model.out1a) + self.out1b = self.Export(self.model.out1b) + self.out2a = self.Export(self.model.out2a) + self.out2b = self.Export(self.model.out2b) + + def generate(self) -> None: + super().generate() + + self.connect(self.pwr, self.model.vbb2) + + # TODO: deduplicate w/ A4988 application circuit + step_resolution = self.get(self.step_resolution) + if step_resolution == 1: # full step + self.connect(self.gnd.as_digital_source(), self.model.ms1, self.model.ms2, self.model.ms3) + elif step_resolution == 2: # half step + self.connect(self.gnd.as_digital_source(), self.model.ms2, self.model.ms3) + self.connect(self.pwr_logic.as_digital_source(), self.model.ms1) + elif step_resolution == 4: # quarter step + self.connect(self.gnd.as_digital_source(), self.model.ms1, self.model.ms3) + self.connect(self.pwr_logic.as_digital_source(), self.model.ms2) + elif step_resolution == 8: # eighth step + self.connect(self.gnd.as_digital_source(), self.model.ms3) + self.connect(self.pwr_logic.as_digital_source(), self.model.ms1, self.model.ms2) + elif step_resolution == 16: # sixteenth step + self.connect(self.pwr_logic.as_digital_source(), self.model.ms1, self.model.ms2, self.model.ms3) + else: + raise ValueError(f"unknown step_resolution {step_resolution}") + + if self.get(self.enable.is_connected()): + self.connect(self.enable, self.model.enable) + else: + self.connect(self.gnd.as_digital_source(), self.model.enable) + + if self.get(self.reset.is_connected()): + self.connect(self.reset, self.model.reset) + else: + self.connect(self.pwr_logic.as_digital_source(), self.model.reset) + + if self.get(self.sleep.is_connected()): + self.connect(self.sleep, self.model.sleep) + else: + self.connect(self.pwr_logic.as_digital_source(), self.model.sleep) + + # these are implemented internal to the breakout board + (self.dummy_vreg, ), _ = self.chain(self.Block(DummyVoltageSink()), self.model.vreg) + (self.dummy_vcp, ), _ = self.chain(self.Block(DummyPassive()), self.model.vcp) + (self.dummy_cp1, ), _ = self.chain(self.Block(DummyPassive()), self.model.cp1) + (self.dummy_cp2, ), _ = self.chain(self.Block(DummyPassive()), self.model.cp2) + (self.dummy_rosc, ), _ = self.chain(self.Block(DummyPassive()), self.model.rosc) + (self.dummy_ref, ), _ = self.chain(self.Block(DummyAnalogSource()), self.model.ref) + (self.dummy_sense1, ), _ = self.chain(self.Block(DummyPassive()), self.model.sense1) + (self.dummy_sense2, ), _ = self.chain(self.Block(DummyPassive()), self.model.sense2) + + self.footprint( + 'U', 'edg:DIP-16_W12.70mm', + { + '1': self.pwr, + '2': self.gnd, + '3': self.out2b, + '4': self.out2a, + '5': self.out1a, + '6': self.out1b, + '7': self.pwr_logic, + '8': self.gnd, + '9': self.dir, + '10': self.step, + '11': self.model.sleep, + '12': self.model.reset, + '13': self.model.ms3, + '14': self.model.ms2, + '15': self.model.ms1, + '16': self.model.enable, + }, + mfr='Pololu', part='1182', + datasheet='https://www.pololu.com/product/1182' + ) diff --git a/edg/parts/__init__.py b/edg/parts/__init__.py index 75b688115..a7599df5e 100644 --- a/edg/parts/__init__.py +++ b/edg/parts/__init__.py @@ -133,7 +133,7 @@ from .Ina219 import Ina219 from .BatteryProtector_S8261A import S8261A from .BatteryCharger_Mcp73831 import Mcp73831 -from .Distance_Vl53l0x import Vl53l0xBase, Vl53l0x, Vl53l0xConnector, Vl53l0xArray +from .Distance_Vl53l0x import Vl53l0x, Vl53l0xConnector, Vl53l0xArray from .Isolator_Cbmud1200 import Cbmud1200l from .GateDriver_Ir2301 import Ir2301 from .GateDriver_Ucc27282 import Ucc27282 @@ -156,7 +156,7 @@ from .MotorDriver_L293dd import L293dd from .MotorDriver_Drv8833 import Drv8833 from .Bldc_Drv8313 import Drv8313 -from .StepperDriver_A4988 import A4988 +from .StepperDriver_A4988 import A4988, PololuA4988 from .Imu_Lsm6ds3trc import Lsm6ds3trc from .Mag_Qmc5883l import Qmc5883l diff --git a/examples/BldcController/BldcController.net b/examples/BldcController/BldcController.net index 770337a06..6c9cb7c7b 100644 --- a/examples/BldcController/BldcController.net +++ b/examples/BldcController/BldcController.net @@ -1046,16 +1046,15 @@ (net (code 45) (name "bldc_drv.vcp_cap.pos") (node (ref bldc_drv.vcp_cap) (pin 1)) (node (ref bldc_drv.ic) (pin 3))) -(net (code 46) (name "bldc_drv.nsleep")) -(net (code 47) (name "curr_amp[1].r2.a") +(net (code 46) (name "curr_amp[1].r2.a") (node (ref curr_amp[1].r2) (pin 1)) (node (ref curr_amp[1].amp.ic) (pin 3)) (node (ref curr_amp[1].r1) (pin 2))) -(net (code 48) (name "curr_amp[2].r2.a") +(net (code 47) (name "curr_amp[2].r2.a") (node (ref curr_amp[2].r2) (pin 1)) (node (ref curr_amp[2].amp.ic) (pin 3)) (node (ref curr_amp[2].r1) (pin 2))) -(net (code 49) (name "curr_amp[3].r2.a") +(net (code 48) (name "curr_amp[3].r2.a") (node (ref curr_amp[3].r2) (pin 1)) (node (ref curr_amp[3].amp.ic) (pin 3)) (node (ref curr_amp[3].r1) (pin 2)))) diff --git a/examples/BldcController/BldcController.ref.net b/examples/BldcController/BldcController.ref.net index d2da043e9..e72a55cd3 100644 --- a/examples/BldcController/BldcController.ref.net +++ b/examples/BldcController/BldcController.ref.net @@ -1046,16 +1046,15 @@ (net (code 45) (name "bldc_drv.vcp_cap.pos") (node (ref C8) (pin 1)) (node (ref U4) (pin 3))) -(net (code 46) (name "bldc_drv.nsleep")) -(net (code 47) (name "curr_amp[1].r2.a") +(net (code 46) (name "curr_amp[1].r2.a") (node (ref R23) (pin 1)) (node (ref U5) (pin 3)) (node (ref R22) (pin 2))) -(net (code 48) (name "curr_amp[2].r2.a") +(net (code 47) (name "curr_amp[2].r2.a") (node (ref R25) (pin 1)) (node (ref U6) (pin 3)) (node (ref R24) (pin 2))) -(net (code 49) (name "curr_amp[3].r2.a") +(net (code 48) (name "curr_amp[3].r2.a") (node (ref R27) (pin 1)) (node (ref U7) (pin 3)) (node (ref R26) (pin 2)))) diff --git a/examples/CanAdapter/CanAdapter.net b/examples/CanAdapter/CanAdapter.net index 244718990..46d1db5c1 100644 --- a/examples/CanAdapter/CanAdapter.net +++ b/examples/CanAdapter/CanAdapter.net @@ -678,92 +678,91 @@ (net (code 17) (name "lcd.spi.mosi") (node (ref mcu.ic) (pin 18)) (node (ref lcd.device) (pin 5))) -(net (code 18) (name "lcd.spi.miso")) -(net (code 19) (name "lcd.cs") +(net (code 18) (name "lcd.cs") (node (ref mcu.ic) (pin 22)) (node (ref lcd.device) (pin 8))) -(net (code 20) (name "mcu.gpio.rgb_usb_red") +(net (code 19) (name "mcu.gpio.rgb_usb_red") (node (ref mcu.ic) (pin 2)) (node (ref rgb_usb.red_res) (pin 2))) -(net (code 21) (name "mcu.gpio.rgb_usb_green") +(net (code 20) (name "mcu.gpio.rgb_usb_green") (node (ref mcu.ic) (pin 1)) (node (ref rgb_usb.green_res) (pin 2))) -(net (code 22) (name "mcu.gpio.rgb_usb_blue") +(net (code 21) (name "mcu.gpio.rgb_usb_blue") (node (ref mcu.ic) (pin 3)) (node (ref rgb_usb.blue_res) (pin 2))) -(net (code 23) (name "mcu.gpio.rgb_can_red") +(net (code 22) (name "mcu.gpio.rgb_can_red") (node (ref mcu.ic) (pin 6)) (node (ref rgb_can.red_res) (pin 2))) -(net (code 24) (name "mcu.gpio.rgb_can_green") +(net (code 23) (name "mcu.gpio.rgb_can_green") (node (ref mcu.ic) (pin 4)) (node (ref rgb_can.green_res) (pin 2))) -(net (code 25) (name "mcu.gpio.rgb_can_blue") +(net (code 24) (name "mcu.gpio.rgb_can_blue") (node (ref mcu.ic) (pin 7)) (node (ref rgb_can.blue_res) (pin 2))) -(net (code 26) (name "xcvr.can.canh") +(net (code 25) (name "xcvr.can.canh") (node (ref xcvr.ic) (pin 7)) (node (ref can_esd) (pin 2)) (node (ref can) (pin 4))) -(net (code 27) (name "xcvr.can.canl") +(net (code 26) (name "xcvr.can.canl") (node (ref xcvr.ic) (pin 6)) (node (ref can_esd) (pin 1)) (node (ref can) (pin 5))) -(net (code 28) (name "usb.conn.cc.cc1") +(net (code 27) (name "usb.conn.cc.cc1") (node (ref usb.conn) (pin A5)) (node (ref usb.cc_pull.cc1) (pin 2))) -(net (code 29) (name "usb.conn.cc.cc2") +(net (code 28) (name "usb.conn.cc.cc2") (node (ref usb.conn) (pin B5)) (node (ref usb.cc_pull.cc2) (pin 2))) -(net (code 30) (name "mcu.xtal_node.xi") +(net (code 29) (name "mcu.xtal_node.xi") (node (ref mcu.ic) (pin 26)) (node (ref mcu.crystal.package) (pin 1)) (node (ref mcu.crystal.cap_a) (pin 1))) -(net (code 31) (name "mcu.xtal_node.xo") +(net (code 30) (name "mcu.xtal_node.xo") (node (ref mcu.ic) (pin 25)) (node (ref mcu.crystal.package) (pin 3)) (node (ref mcu.crystal.cap_b) (pin 1))) -(net (code 32) (name "mcu.swd_node.swdio") +(net (code 31) (name "mcu.swd_node.swdio") (node (ref mcu.ic) (pin 33)) (node (ref mcu.swd) (pin 10)) (node (ref mcu.swd_pull.swdio) (pin 2))) -(net (code 33) (name "mcu.swd_node.swclk") +(net (code 32) (name "mcu.swd_node.swclk") (node (ref mcu.ic) (pin 29)) (node (ref mcu.swd) (pin 9)) (node (ref mcu.swd_pull.swclk) (pin 2))) -(net (code 34) (name "mcu.reset_node") +(net (code 33) (name "mcu.reset_node") (node (ref mcu.ic) (pin 34)) (node (ref mcu.swd) (pin 6))) -(net (code 35) (name "mcu.swd.swo") +(net (code 34) (name "mcu.swd.swo") (node (ref mcu.ic) (pin 9)) (node (ref mcu.swd) (pin 8))) -(net (code 36) (name "mcu.swd.tdi") +(net (code 35) (name "mcu.swd.tdi") (node (ref mcu.swd) (pin 7))) -(net (code 37) (name "mcu.ic.xtal_rtc.xtal_in") +(net (code 36) (name "mcu.ic.xtal_rtc.xtal_in") (node (ref mcu.ic) (pin 31))) -(net (code 38) (name "mcu.ic.xtal_rtc.xtal_out") +(net (code 37) (name "mcu.ic.xtal_rtc.xtal_out") (node (ref mcu.ic) (pin 32))) -(net (code 39) (name "lcd.led_res.b") +(net (code 38) (name "lcd.led_res.b") (node (ref lcd.led_res) (pin 2)) (node (ref lcd.device) (pin 1))) -(net (code 40) (name "rgb_usb.red_res.a") +(net (code 39) (name "rgb_usb.red_res.a") (node (ref rgb_usb.red_res) (pin 1)) (node (ref rgb_usb.package) (pin 3))) -(net (code 41) (name "rgb_usb.green_res.a") +(net (code 40) (name "rgb_usb.green_res.a") (node (ref rgb_usb.green_res) (pin 1)) (node (ref rgb_usb.package) (pin 4))) -(net (code 42) (name "rgb_usb.blue_res.a") +(net (code 41) (name "rgb_usb.blue_res.a") (node (ref rgb_usb.blue_res) (pin 1)) (node (ref rgb_usb.package) (pin 1))) -(net (code 43) (name "rgb_can.red_res.a") +(net (code 42) (name "rgb_can.red_res.a") (node (ref rgb_can.red_res) (pin 1)) (node (ref rgb_can.package) (pin 3))) -(net (code 44) (name "rgb_can.green_res.a") +(net (code 43) (name "rgb_can.green_res.a") (node (ref rgb_can.green_res) (pin 1)) (node (ref rgb_can.package) (pin 4))) -(net (code 45) (name "rgb_can.blue_res.a") +(net (code 44) (name "rgb_can.blue_res.a") (node (ref rgb_can.blue_res) (pin 1)) (node (ref rgb_can.package) (pin 1))) -(net (code 46) (name "led_can.res.a") +(net (code 45) (name "led_can.res.a") (node (ref led_can.res) (pin 1)) (node (ref led_can.package) (pin 1)))) ) \ No newline at end of file diff --git a/examples/CanAdapter/CanAdapter.ref.net b/examples/CanAdapter/CanAdapter.ref.net index 6e99a92b6..2e822d806 100644 --- a/examples/CanAdapter/CanAdapter.ref.net +++ b/examples/CanAdapter/CanAdapter.ref.net @@ -678,92 +678,91 @@ (net (code 17) (name "lcd.spi.mosi") (node (ref U2) (pin 18)) (node (ref J3) (pin 5))) -(net (code 18) (name "lcd.spi.miso")) -(net (code 19) (name "lcd.cs") +(net (code 18) (name "lcd.cs") (node (ref U2) (pin 22)) (node (ref J3) (pin 8))) -(net (code 20) (name "mcu.gpio.rgb_usb_red") +(net (code 19) (name "mcu.gpio.rgb_usb_red") (node (ref U2) (pin 2)) (node (ref R6) (pin 2))) -(net (code 21) (name "mcu.gpio.rgb_usb_green") +(net (code 20) (name "mcu.gpio.rgb_usb_green") (node (ref U2) (pin 1)) (node (ref R7) (pin 2))) -(net (code 22) (name "mcu.gpio.rgb_usb_blue") +(net (code 21) (name "mcu.gpio.rgb_usb_blue") (node (ref U2) (pin 3)) (node (ref R8) (pin 2))) -(net (code 23) (name "mcu.gpio.rgb_can_red") +(net (code 22) (name "mcu.gpio.rgb_can_red") (node (ref U2) (pin 6)) (node (ref R9) (pin 2))) -(net (code 24) (name "mcu.gpio.rgb_can_green") +(net (code 23) (name "mcu.gpio.rgb_can_green") (node (ref U2) (pin 4)) (node (ref R10) (pin 2))) -(net (code 25) (name "mcu.gpio.rgb_can_blue") +(net (code 24) (name "mcu.gpio.rgb_can_blue") (node (ref U2) (pin 7)) (node (ref R11) (pin 2))) -(net (code 26) (name "xcvr.can.canh") +(net (code 25) (name "xcvr.can.canh") (node (ref U4) (pin 7)) (node (ref U6) (pin 2)) (node (ref J4) (pin 4))) -(net (code 27) (name "xcvr.can.canl") +(net (code 26) (name "xcvr.can.canl") (node (ref U4) (pin 6)) (node (ref U6) (pin 1)) (node (ref J4) (pin 5))) -(net (code 28) (name "usb.conn.cc.cc1") +(net (code 27) (name "usb.conn.cc.cc1") (node (ref J1) (pin A5)) (node (ref R1) (pin 2))) -(net (code 29) (name "usb.conn.cc.cc2") +(net (code 28) (name "usb.conn.cc.cc2") (node (ref J1) (pin B5)) (node (ref R2) (pin 2))) -(net (code 30) (name "mcu.xtal_node.xi") +(net (code 29) (name "mcu.xtal_node.xi") (node (ref U2) (pin 26)) (node (ref X1) (pin 1)) (node (ref C15) (pin 1))) -(net (code 31) (name "mcu.xtal_node.xo") +(net (code 30) (name "mcu.xtal_node.xo") (node (ref U2) (pin 25)) (node (ref X1) (pin 3)) (node (ref C16) (pin 1))) -(net (code 32) (name "mcu.swd_node.swdio") +(net (code 31) (name "mcu.swd_node.swdio") (node (ref U2) (pin 33)) (node (ref J2) (pin 10)) (node (ref R3) (pin 2))) -(net (code 33) (name "mcu.swd_node.swclk") +(net (code 32) (name "mcu.swd_node.swclk") (node (ref U2) (pin 29)) (node (ref J2) (pin 9)) (node (ref R4) (pin 2))) -(net (code 34) (name "mcu.reset_node") +(net (code 33) (name "mcu.reset_node") (node (ref U2) (pin 34)) (node (ref J2) (pin 6))) -(net (code 35) (name "mcu.swd.swo") +(net (code 34) (name "mcu.swd.swo") (node (ref U2) (pin 9)) (node (ref J2) (pin 8))) -(net (code 36) (name "mcu.swd.tdi") +(net (code 35) (name "mcu.swd.tdi") (node (ref J2) (pin 7))) -(net (code 37) (name "mcu.ic.xtal_rtc.xtal_in") +(net (code 36) (name "mcu.ic.xtal_rtc.xtal_in") (node (ref U2) (pin 31))) -(net (code 38) (name "mcu.ic.xtal_rtc.xtal_out") +(net (code 37) (name "mcu.ic.xtal_rtc.xtal_out") (node (ref U2) (pin 32))) -(net (code 39) (name "lcd.led_res.b") +(net (code 38) (name "lcd.led_res.b") (node (ref R5) (pin 2)) (node (ref J3) (pin 1))) -(net (code 40) (name "rgb_usb.red_res.a") +(net (code 39) (name "rgb_usb.red_res.a") (node (ref R6) (pin 1)) (node (ref D1) (pin 3))) -(net (code 41) (name "rgb_usb.green_res.a") +(net (code 40) (name "rgb_usb.green_res.a") (node (ref R7) (pin 1)) (node (ref D1) (pin 4))) -(net (code 42) (name "rgb_usb.blue_res.a") +(net (code 41) (name "rgb_usb.blue_res.a") (node (ref R8) (pin 1)) (node (ref D1) (pin 1))) -(net (code 43) (name "rgb_can.red_res.a") +(net (code 42) (name "rgb_can.red_res.a") (node (ref R9) (pin 1)) (node (ref D2) (pin 3))) -(net (code 44) (name "rgb_can.green_res.a") +(net (code 43) (name "rgb_can.green_res.a") (node (ref R10) (pin 1)) (node (ref D2) (pin 4))) -(net (code 45) (name "rgb_can.blue_res.a") +(net (code 44) (name "rgb_can.blue_res.a") (node (ref R11) (pin 1)) (node (ref D2) (pin 1))) -(net (code 46) (name "led_can.res.a") +(net (code 45) (name "led_can.res.a") (node (ref R12) (pin 1)) (node (ref D3) (pin 1)))) ) \ No newline at end of file diff --git a/examples/Multimeter/Multimeter.net b/examples/Multimeter/Multimeter.net index 9dc5311ce..fa709a54b 100644 --- a/examples/Multimeter/Multimeter.net +++ b/examples/Multimeter/Multimeter.net @@ -1392,224 +1392,223 @@ (net (code 22) (name "lcd.spi.mosi") (node (ref mcu.ic) (pin 19)) (node (ref lcd.device) (pin 5))) -(net (code 23) (name "lcd.spi.miso")) -(net (code 24) (name "lcd.cs") +(net (code 23) (name "lcd.cs") (node (ref mcu.ic) (pin 17)) (node (ref lcd.device) (pin 8))) -(net (code 25) (name "spk_chain_0") +(net (code 24) (name "spk_chain_0") (node (ref mcu.ic) (pin 36)) (node (ref spk_dac.r) (pin 1))) -(net (code 26) (name "spk_chain_1") +(net (code 25) (name "spk_chain_1") (node (ref spk_tp) (pin 1)) (node (ref spk_drv.inp_cap) (pin 2)) (node (ref spk_dac.r) (pin 2)) (node (ref spk_dac.c) (pin 1))) -(net (code 27) (name "spk_chain_2.a") +(net (code 26) (name "spk_chain_2.a") (node (ref spk_drv.ic) (pin 8)) (node (ref spk) (pin 1))) -(net (code 28) (name "spk_chain_2.b") +(net (code 27) (name "spk_chain_2.b") (node (ref spk_drv.ic) (pin 5)) (node (ref spk) (pin 2))) -(net (code 29) (name "ref_div.output") +(net (code 28) (name "ref_div.output") (node (ref ref_buf.ic) (pin 3)) (node (ref ref_div.top_res) (pin 2)) (node (ref ref_div.bottom_res) (pin 1))) -(net (code 30) (name "inn_merge") +(net (code 29) (name "inn_merge") (node (ref inn) (pin 1)) (node (ref adc.ic) (pin 6)) (node (ref inn_mux.ic) (pin 4)) (node (ref measure.range.switch.sw[1_0].ic) (pin 4))) -(net (code 31) (name "mcu.gpio.inn_control_0") +(net (code 30) (name "mcu.gpio.inn_control_0") (node (ref mcu.ic) (pin 41)) (node (ref inn_mux.ic) (pin 6))) -(net (code 32) (name "inp.port") +(net (code 31) (name "inp.port") (node (ref inp) (pin 1)) (node (ref measure.res) (pin 1)) (node (ref driver.diode) (pin 1))) -(net (code 33) (name "meas_chain_0") +(net (code 32) (name "meas_chain_0") (node (ref measure_buffer.ic) (pin 3)) (node (ref measure.res) (pin 2)) (node (ref measure.range.res[0]) (pin 1)) (node (ref measure.range.res[1]) (pin 1)) (node (ref measure.range.res[2]) (pin 1))) -(net (code 34) (name "meas_chain_1") +(net (code 33) (name "meas_chain_1") (node (ref adc.ic) (pin 5)) (node (ref measure_buffer.ic) (pin 4)) (node (ref tp_measure) (pin 1)) (node (ref measure_buffer.ic) (pin 1))) -(net (code 35) (name "adc.spi.sck") +(net (code 34) (name "adc.spi.sck") (node (ref adc.ic) (pin 14)) (node (ref mcu.ic) (pin 37))) -(net (code 36) (name "adc.spi.mosi") +(net (code 35) (name "adc.spi.mosi") (node (ref adc.ic) (pin 15)) (node (ref mcu.ic) (pin 26))) -(net (code 37) (name "adc.spi.miso") +(net (code 36) (name "adc.spi.miso") (node (ref adc.ic) (pin 16)) (node (ref mcu.ic) (pin 24))) -(net (code 38) (name "mcu.gpio.measure_select_0_0") +(net (code 37) (name "mcu.gpio.measure_select_0_0") (node (ref mcu.ic) (pin 42)) (node (ref measure.range.switch.sw[0_0].ic) (pin 6)) (node (ref measure.range.switch.sw[0_1].ic) (pin 6))) -(net (code 39) (name "mcu.gpio.measure_select_1_0") +(net (code 38) (name "mcu.gpio.measure_select_1_0") (node (ref mcu.ic) (pin 43)) (node (ref measure.range.switch.sw[1_0].ic) (pin 6))) -(net (code 40) (name "adc.cs") +(net (code 39) (name "adc.cs") (node (ref mcu.ic) (pin 39)) (node (ref adc.ic) (pin 13))) -(net (code 41) (name "driver_dac.input") +(net (code 40) (name "driver_dac.input") (node (ref mcu.ic) (pin 45)) (node (ref driver_dac.r) (pin 1))) -(net (code 42) (name "driver_dac.output") +(net (code 41) (name "driver_dac.output") (node (ref driver.amp.ic) (pin 3)) (node (ref driver_dac.r) (pin 2)) (node (ref driver_dac.c) (pin 1))) -(net (code 43) (name "mcu.gpio.driver_select_0_0") +(net (code 42) (name "mcu.gpio.driver_select_0_0") (node (ref mcu.ic) (pin 46)) (node (ref driver.range.switch.sw[0_0].ic) (pin 6)) (node (ref driver.range.switch.sw[0_1].ic) (pin 6))) -(net (code 44) (name "mcu.gpio.driver_select_1_0") +(net (code 43) (name "mcu.gpio.driver_select_1_0") (node (ref mcu.ic) (pin 44)) (node (ref driver.range.switch.sw[1_0].ic) (pin 6))) -(net (code 45) (name "driver.enable") +(net (code 44) (name "driver.enable") (node (ref mcu.ic) (pin 48)) (node (ref driver.sw.ic) (pin 6))) -(net (code 46) (name "data_usb.conn.cc.cc1") +(net (code 45) (name "data_usb.conn.cc.cc1") (node (ref data_usb.conn) (pin A5)) (node (ref data_usb.cc_pull.cc1) (pin 2))) -(net (code 47) (name "data_usb.conn.cc.cc2") +(net (code 46) (name "data_usb.conn.cc.cc2") (node (ref data_usb.conn) (pin B5)) (node (ref data_usb.cc_pull.cc2) (pin 2))) -(net (code 48) (name "gate.pwr_gate.btn_in") +(net (code 47) (name "gate.pwr_gate.btn_in") (node (ref gate.pwr_gate.btn_diode) (pin 1)) (node (ref gate.pwr_gate.ctl_diode) (pin 1)) (node (ref gate.btn) (pin 1))) -(net (code 49) (name "gate.pwr_gate.pull_res.b") +(net (code 48) (name "gate.pwr_gate.pull_res.b") (node (ref gate.pwr_gate.pull_res) (pin 2)) (node (ref gate.pwr_gate.ctl_diode) (pin 2)) (node (ref gate.pwr_gate.pwr_fet) (pin 1)) (node (ref gate.pwr_gate.amp_fet) (pin 3))) -(net (code 50) (name "reg_5v.power_path.switch") +(net (code 49) (name "reg_5v.power_path.switch") (node (ref reg_5v.ic) (pin 5)) (node (ref reg_5v.power_path.inductor) (pin 2))) -(net (code 51) (name "reg_5v.ic.ce") +(net (code 50) (name "reg_5v.ic.ce") (node (ref reg_5v.ic) (pin 1)) (node (ref reg_5v.ce_res) (pin 2))) -(net (code 52) (name "mcu.swd_node.swdio") +(net (code 51) (name "mcu.swd_node.swdio") (node (ref mcu.ic) (pin 51)) (node (ref mcu.swd) (pin 10))) -(net (code 53) (name "mcu.swd_node.swclk") +(net (code 52) (name "mcu.swd_node.swclk") (node (ref mcu.ic) (pin 53)) (node (ref mcu.swd) (pin 9))) -(net (code 54) (name "mcu.reset_node") +(net (code 53) (name "mcu.reset_node") (node (ref mcu.ic) (pin 40)) (node (ref mcu.swd) (pin 6))) -(net (code 55) (name "mcu.usb_chain_0.d_P") +(net (code 54) (name "mcu.usb_chain_0.d_P") (node (ref mcu.ic) (pin 35)) (node (ref mcu.usb_res.res_dp) (pin 1))) -(net (code 56) (name "mcu.usb_chain_0.d_N") +(net (code 55) (name "mcu.usb_chain_0.d_N") (node (ref mcu.ic) (pin 34)) (node (ref mcu.usb_res.res_dm) (pin 1))) -(net (code 57) (name "mcu.swd.swo") +(net (code 56) (name "mcu.swd.swo") (node (ref mcu.ic) (pin 47)) (node (ref mcu.swd) (pin 8))) -(net (code 58) (name "mcu.swd.tdi") +(net (code 57) (name "mcu.swd.tdi") (node (ref mcu.swd) (pin 7))) -(net (code 59) (name "rgb.red_res.a") +(net (code 58) (name "rgb.red_res.a") (node (ref rgb.red_res) (pin 1)) (node (ref rgb.package) (pin 3))) -(net (code 60) (name "rgb.green_res.a") +(net (code 59) (name "rgb.green_res.a") (node (ref rgb.green_res) (pin 1)) (node (ref rgb.package) (pin 4))) -(net (code 61) (name "rgb.blue_res.a") +(net (code 60) (name "rgb.blue_res.a") (node (ref rgb.blue_res) (pin 1)) (node (ref rgb.package) (pin 1))) -(net (code 62) (name "lcd.led_res.b") +(net (code 61) (name "lcd.led_res.b") (node (ref lcd.led_res) (pin 2)) (node (ref lcd.device) (pin 1))) -(net (code 63) (name "spk_drv.inp_cap.pos") +(net (code 62) (name "spk_drv.inp_cap.pos") (node (ref spk_drv.inp_cap) (pin 1)) (node (ref spk_drv.inp_res) (pin 1))) -(net (code 64) (name "spk_drv.inp_res.b") +(net (code 63) (name "spk_drv.inp_res.b") (node (ref spk_drv.inp_res) (pin 2)) (node (ref spk_drv.ic) (pin 4))) -(net (code 65) (name "spk_drv.inn_cap.pos") +(net (code 64) (name "spk_drv.inn_cap.pos") (node (ref spk_drv.inn_cap) (pin 1)) (node (ref spk_drv.inn_res) (pin 1))) -(net (code 66) (name "spk_drv.inn_res.b") +(net (code 65) (name "spk_drv.inn_res.b") (node (ref spk_drv.inn_res) (pin 2)) (node (ref spk_drv.ic) (pin 3))) -(net (code 67) (name "measure.range.res[0].b") +(net (code 66) (name "measure.range.res[0].b") (node (ref measure.range.res[0]) (pin 2)) (node (ref measure.range.switch.sw[0_0].ic) (pin 3))) -(net (code 68) (name "measure.range.res[1].b") +(net (code 67) (name "measure.range.res[1].b") (node (ref measure.range.res[1]) (pin 2)) (node (ref measure.range.switch.sw[0_0].ic) (pin 1))) -(net (code 69) (name "measure.range.res[2].b") +(net (code 68) (name "measure.range.res[2].b") (node (ref measure.range.res[2]) (pin 2)) (node (ref measure.range.switch.sw[0_1].ic) (pin 3))) -(net (code 70) (name "measure.range.dummy.io") +(net (code 69) (name "measure.range.dummy.io") (node (ref measure.range.switch.sw[0_1].ic) (pin 1))) -(net (code 71) (name "measure.range.switch.sw[0_0].com") +(net (code 70) (name "measure.range.switch.sw[0_0].com") (node (ref measure.range.switch.sw[1_0].ic) (pin 3)) (node (ref measure.range.switch.sw[0_0].ic) (pin 4))) -(net (code 72) (name "measure.range.switch.sw[0_1].com") +(net (code 71) (name "measure.range.switch.sw[0_1].com") (node (ref measure.range.switch.sw[1_0].ic) (pin 1)) (node (ref measure.range.switch.sw[0_1].ic) (pin 4))) -(net (code 73) (name "adc.vins.2") +(net (code 72) (name "adc.vins.2") (node (ref adc.ic) (pin 7))) -(net (code 74) (name "adc.vins.3") +(net (code 73) (name "adc.vins.3") (node (ref adc.ic) (pin 8))) -(net (code 75) (name "adc.vins.4") +(net (code 74) (name "adc.vins.4") (node (ref adc.ic) (pin 9))) -(net (code 76) (name "adc.vins.5") +(net (code 75) (name "adc.vins.5") (node (ref adc.ic) (pin 10))) -(net (code 77) (name "adc.vins.6") +(net (code 76) (name "adc.vins.6") (node (ref adc.ic) (pin 11))) -(net (code 78) (name "adc.vins.7") +(net (code 77) (name "adc.vins.7") (node (ref adc.ic) (pin 12))) -(net (code 79) (name "adc.ic.avdd") +(net (code 78) (name "adc.ic.avdd") (node (ref adc.ic) (pin 1)) (node (ref adc.avdd_res) (pin 2)) (node (ref adc.avdd_cap_0) (pin 1)) (node (ref adc.avdd_cap_1) (pin 1))) -(net (code 80) (name "adc.ic.dvdd") +(net (code 79) (name "adc.ic.dvdd") (node (ref adc.ic) (pin 20)) (node (ref adc.dvdd_res) (pin 2)) (node (ref adc.dvdd_cap_0) (pin 1)) (node (ref adc.dvdd_cap_1) (pin 1))) -(net (code 81) (name "adc.ic.vrefp") +(net (code 80) (name "adc.ic.vrefp") (node (ref adc.ic) (pin 4)) (node (ref adc.vref_cap) (pin 1))) -(net (code 82) (name "driver.fet.source") +(net (code 81) (name "driver.fet.source") (node (ref driver.fet) (pin 2)) (node (ref driver.amp.ic) (pin 4)) (node (ref driver.sw.ic) (pin 3)) (node (ref driver.range.switch.sw[1_0].ic) (pin 4))) -(net (code 83) (name "driver.amp.out") +(net (code 82) (name "driver.amp.out") (node (ref driver.amp.ic) (pin 1)) (node (ref driver.sw.ic) (pin 1))) -(net (code 84) (name "driver.fet.gate") +(net (code 83) (name "driver.fet.gate") (node (ref driver.fet) (pin 1)) (node (ref driver.sw.ic) (pin 4))) -(net (code 85) (name "driver.fet.drain") +(net (code 84) (name "driver.fet.drain") (node (ref driver.fet) (pin 3)) (node (ref driver.diode) (pin 2))) -(net (code 86) (name "driver.range.res[0].b") +(net (code 85) (name "driver.range.res[0].b") (node (ref driver.range.res[0]) (pin 2)) (node (ref driver.range.switch.sw[0_0].ic) (pin 3))) -(net (code 87) (name "driver.range.res[1].b") +(net (code 86) (name "driver.range.res[1].b") (node (ref driver.range.res[1]) (pin 2)) (node (ref driver.range.switch.sw[0_0].ic) (pin 1))) -(net (code 88) (name "driver.range.res[2].b") +(net (code 87) (name "driver.range.res[2].b") (node (ref driver.range.res[2]) (pin 2)) (node (ref driver.range.switch.sw[0_1].ic) (pin 3))) -(net (code 89) (name "driver.range.res[3].b") +(net (code 88) (name "driver.range.res[3].b") (node (ref driver.range.res[3]) (pin 2)) (node (ref driver.range.switch.sw[0_1].ic) (pin 1))) -(net (code 90) (name "driver.range.switch.sw[0_0].com") +(net (code 89) (name "driver.range.switch.sw[0_0].com") (node (ref driver.range.switch.sw[1_0].ic) (pin 3)) (node (ref driver.range.switch.sw[0_0].ic) (pin 4))) -(net (code 91) (name "driver.range.switch.sw[0_1].com") +(net (code 90) (name "driver.range.switch.sw[0_1].com") (node (ref driver.range.switch.sw[1_0].ic) (pin 1)) (node (ref driver.range.switch.sw[0_1].ic) (pin 4)))) ) \ No newline at end of file diff --git a/examples/Multimeter/Multimeter.ref.net b/examples/Multimeter/Multimeter.ref.net index c1fd01f82..25538db37 100644 --- a/examples/Multimeter/Multimeter.ref.net +++ b/examples/Multimeter/Multimeter.ref.net @@ -1392,224 +1392,223 @@ (net (code 22) (name "lcd.spi.mosi") (node (ref U5) (pin 19)) (node (ref J3) (pin 5))) -(net (code 23) (name "lcd.spi.miso")) -(net (code 24) (name "lcd.cs") +(net (code 23) (name "lcd.cs") (node (ref U5) (pin 17)) (node (ref J3) (pin 8))) -(net (code 25) (name "spk_chain_0") +(net (code 24) (name "spk_chain_0") (node (ref U5) (pin 36)) (node (ref R14) (pin 1))) -(net (code 26) (name "spk_chain_1") +(net (code 25) (name "spk_chain_1") (node (ref TP4) (pin 1)) (node (ref C13) (pin 2)) (node (ref R14) (pin 2)) (node (ref C10) (pin 1))) -(net (code 27) (name "spk_chain_2.a") +(net (code 26) (name "spk_chain_2.a") (node (ref U7) (pin 8)) (node (ref J4) (pin 1))) -(net (code 28) (name "spk_chain_2.b") +(net (code 27) (name "spk_chain_2.b") (node (ref U7) (pin 5)) (node (ref J4) (pin 2))) -(net (code 29) (name "ref_div.output") +(net (code 28) (name "ref_div.output") (node (ref U8) (pin 3)) (node (ref R17) (pin 2)) (node (ref R18) (pin 1))) -(net (code 30) (name "inn_merge") +(net (code 29) (name "inn_merge") (node (ref J5) (pin 1)) (node (ref U14) (pin 6)) (node (ref U9) (pin 4)) (node (ref U12) (pin 4))) -(net (code 31) (name "mcu.gpio.inn_control_0") +(net (code 30) (name "mcu.gpio.inn_control_0") (node (ref U5) (pin 41)) (node (ref U9) (pin 6))) -(net (code 32) (name "inp.port") +(net (code 31) (name "inp.port") (node (ref J6) (pin 1)) (node (ref R19) (pin 1)) (node (ref D7) (pin 1))) -(net (code 33) (name "meas_chain_0") +(net (code 32) (name "meas_chain_0") (node (ref U13) (pin 3)) (node (ref R19) (pin 2)) (node (ref R20) (pin 1)) (node (ref R21) (pin 1)) (node (ref R22) (pin 1))) -(net (code 34) (name "meas_chain_1") +(net (code 33) (name "meas_chain_1") (node (ref U14) (pin 5)) (node (ref U13) (pin 4)) (node (ref TP5) (pin 1)) (node (ref U13) (pin 1))) -(net (code 35) (name "adc.spi.sck") +(net (code 34) (name "adc.spi.sck") (node (ref U14) (pin 14)) (node (ref U5) (pin 37))) -(net (code 36) (name "adc.spi.mosi") +(net (code 35) (name "adc.spi.mosi") (node (ref U14) (pin 15)) (node (ref U5) (pin 26))) -(net (code 37) (name "adc.spi.miso") +(net (code 36) (name "adc.spi.miso") (node (ref U14) (pin 16)) (node (ref U5) (pin 24))) -(net (code 38) (name "mcu.gpio.measure_select_0_0") +(net (code 37) (name "mcu.gpio.measure_select_0_0") (node (ref U5) (pin 42)) (node (ref U10) (pin 6)) (node (ref U11) (pin 6))) -(net (code 39) (name "mcu.gpio.measure_select_1_0") +(net (code 38) (name "mcu.gpio.measure_select_1_0") (node (ref U5) (pin 43)) (node (ref U12) (pin 6))) -(net (code 40) (name "adc.cs") +(net (code 39) (name "adc.cs") (node (ref U5) (pin 39)) (node (ref U14) (pin 13))) -(net (code 41) (name "driver_dac.input") +(net (code 40) (name "driver_dac.input") (node (ref U5) (pin 45)) (node (ref R29) (pin 1))) -(net (code 42) (name "driver_dac.output") +(net (code 41) (name "driver_dac.output") (node (ref U15) (pin 3)) (node (ref R29) (pin 2)) (node (ref C31) (pin 1))) -(net (code 43) (name "mcu.gpio.driver_select_0_0") +(net (code 42) (name "mcu.gpio.driver_select_0_0") (node (ref U5) (pin 46)) (node (ref U16) (pin 6)) (node (ref U17) (pin 6))) -(net (code 44) (name "mcu.gpio.driver_select_1_0") +(net (code 43) (name "mcu.gpio.driver_select_1_0") (node (ref U5) (pin 44)) (node (ref U18) (pin 6))) -(net (code 45) (name "driver.enable") +(net (code 44) (name "driver.enable") (node (ref U5) (pin 48)) (node (ref U19) (pin 6))) -(net (code 46) (name "data_usb.conn.cc.cc1") +(net (code 45) (name "data_usb.conn.cc.cc1") (node (ref J1) (pin A5)) (node (ref R1) (pin 2))) -(net (code 47) (name "data_usb.conn.cc.cc2") +(net (code 46) (name "data_usb.conn.cc.cc2") (node (ref J1) (pin B5)) (node (ref R2) (pin 2))) -(net (code 48) (name "gate.pwr_gate.btn_in") +(net (code 47) (name "gate.pwr_gate.btn_in") (node (ref D2) (pin 1)) (node (ref D1) (pin 1)) (node (ref SW1) (pin 1))) -(net (code 49) (name "gate.pwr_gate.pull_res.b") +(net (code 48) (name "gate.pwr_gate.pull_res.b") (node (ref R3) (pin 2)) (node (ref D1) (pin 2)) (node (ref Q1) (pin 1)) (node (ref Q2) (pin 3))) -(net (code 50) (name "reg_5v.power_path.switch") +(net (code 49) (name "reg_5v.power_path.switch") (node (ref U2) (pin 5)) (node (ref L1) (pin 2))) -(net (code 51) (name "reg_5v.ic.ce") +(net (code 50) (name "reg_5v.ic.ce") (node (ref U2) (pin 1)) (node (ref R5) (pin 2))) -(net (code 52) (name "mcu.swd_node.swdio") +(net (code 51) (name "mcu.swd_node.swdio") (node (ref U5) (pin 51)) (node (ref J2) (pin 10))) -(net (code 53) (name "mcu.swd_node.swclk") +(net (code 52) (name "mcu.swd_node.swclk") (node (ref U5) (pin 53)) (node (ref J2) (pin 9))) -(net (code 54) (name "mcu.reset_node") +(net (code 53) (name "mcu.reset_node") (node (ref U5) (pin 40)) (node (ref J2) (pin 6))) -(net (code 55) (name "mcu.usb_chain_0.d_P") +(net (code 54) (name "mcu.usb_chain_0.d_P") (node (ref U5) (pin 35)) (node (ref R6) (pin 1))) -(net (code 56) (name "mcu.usb_chain_0.d_N") +(net (code 55) (name "mcu.usb_chain_0.d_N") (node (ref U5) (pin 34)) (node (ref R7) (pin 1))) -(net (code 57) (name "mcu.swd.swo") +(net (code 56) (name "mcu.swd.swo") (node (ref U5) (pin 47)) (node (ref J2) (pin 8))) -(net (code 58) (name "mcu.swd.tdi") +(net (code 57) (name "mcu.swd.tdi") (node (ref J2) (pin 7))) -(net (code 59) (name "rgb.red_res.a") +(net (code 58) (name "rgb.red_res.a") (node (ref R10) (pin 1)) (node (ref D6) (pin 3))) -(net (code 60) (name "rgb.green_res.a") +(net (code 59) (name "rgb.green_res.a") (node (ref R11) (pin 1)) (node (ref D6) (pin 4))) -(net (code 61) (name "rgb.blue_res.a") +(net (code 60) (name "rgb.blue_res.a") (node (ref R12) (pin 1)) (node (ref D6) (pin 1))) -(net (code 62) (name "lcd.led_res.b") +(net (code 61) (name "lcd.led_res.b") (node (ref R13) (pin 2)) (node (ref J3) (pin 1))) -(net (code 63) (name "spk_drv.inp_cap.pos") +(net (code 62) (name "spk_drv.inp_cap.pos") (node (ref C13) (pin 1)) (node (ref R15) (pin 1))) -(net (code 64) (name "spk_drv.inp_res.b") +(net (code 63) (name "spk_drv.inp_res.b") (node (ref R15) (pin 2)) (node (ref U7) (pin 4))) -(net (code 65) (name "spk_drv.inn_cap.pos") +(net (code 64) (name "spk_drv.inn_cap.pos") (node (ref C14) (pin 1)) (node (ref R16) (pin 1))) -(net (code 66) (name "spk_drv.inn_res.b") +(net (code 65) (name "spk_drv.inn_res.b") (node (ref R16) (pin 2)) (node (ref U7) (pin 3))) -(net (code 67) (name "measure.range.res[0].b") +(net (code 66) (name "measure.range.res[0].b") (node (ref R20) (pin 2)) (node (ref U10) (pin 3))) -(net (code 68) (name "measure.range.res[1].b") +(net (code 67) (name "measure.range.res[1].b") (node (ref R21) (pin 2)) (node (ref U10) (pin 1))) -(net (code 69) (name "measure.range.res[2].b") +(net (code 68) (name "measure.range.res[2].b") (node (ref R22) (pin 2)) (node (ref U11) (pin 3))) -(net (code 70) (name "measure.range.dummy.io") +(net (code 69) (name "measure.range.dummy.io") (node (ref U11) (pin 1))) -(net (code 71) (name "measure.range.switch.sw[0_0].com") +(net (code 70) (name "measure.range.switch.sw[0_0].com") (node (ref U12) (pin 3)) (node (ref U10) (pin 4))) -(net (code 72) (name "measure.range.switch.sw[0_1].com") +(net (code 71) (name "measure.range.switch.sw[0_1].com") (node (ref U12) (pin 1)) (node (ref U11) (pin 4))) -(net (code 73) (name "adc.vins.2") +(net (code 72) (name "adc.vins.2") (node (ref U14) (pin 7))) -(net (code 74) (name "adc.vins.3") +(net (code 73) (name "adc.vins.3") (node (ref U14) (pin 8))) -(net (code 75) (name "adc.vins.4") +(net (code 74) (name "adc.vins.4") (node (ref U14) (pin 9))) -(net (code 76) (name "adc.vins.5") +(net (code 75) (name "adc.vins.5") (node (ref U14) (pin 10))) -(net (code 77) (name "adc.vins.6") +(net (code 76) (name "adc.vins.6") (node (ref U14) (pin 11))) -(net (code 78) (name "adc.vins.7") +(net (code 77) (name "adc.vins.7") (node (ref U14) (pin 12))) -(net (code 79) (name "adc.ic.avdd") +(net (code 78) (name "adc.ic.avdd") (node (ref U14) (pin 1)) (node (ref R23) (pin 2)) (node (ref C21) (pin 1)) (node (ref C22) (pin 1))) -(net (code 80) (name "adc.ic.dvdd") +(net (code 79) (name "adc.ic.dvdd") (node (ref U14) (pin 20)) (node (ref R24) (pin 2)) (node (ref C23) (pin 1)) (node (ref C24) (pin 1))) -(net (code 81) (name "adc.ic.vrefp") +(net (code 80) (name "adc.ic.vrefp") (node (ref U14) (pin 4)) (node (ref C25) (pin 1))) -(net (code 82) (name "driver.fet.source") +(net (code 81) (name "driver.fet.source") (node (ref Q3) (pin 2)) (node (ref U15) (pin 4)) (node (ref U19) (pin 3)) (node (ref U18) (pin 4))) -(net (code 83) (name "driver.amp.out") +(net (code 82) (name "driver.amp.out") (node (ref U15) (pin 1)) (node (ref U19) (pin 1))) -(net (code 84) (name "driver.fet.gate") +(net (code 83) (name "driver.fet.gate") (node (ref Q3) (pin 1)) (node (ref U19) (pin 4))) -(net (code 85) (name "driver.fet.drain") +(net (code 84) (name "driver.fet.drain") (node (ref Q3) (pin 3)) (node (ref D7) (pin 2))) -(net (code 86) (name "driver.range.res[0].b") +(net (code 85) (name "driver.range.res[0].b") (node (ref R25) (pin 2)) (node (ref U16) (pin 3))) -(net (code 87) (name "driver.range.res[1].b") +(net (code 86) (name "driver.range.res[1].b") (node (ref R26) (pin 2)) (node (ref U16) (pin 1))) -(net (code 88) (name "driver.range.res[2].b") +(net (code 87) (name "driver.range.res[2].b") (node (ref R27) (pin 2)) (node (ref U17) (pin 3))) -(net (code 89) (name "driver.range.res[3].b") +(net (code 88) (name "driver.range.res[3].b") (node (ref R28) (pin 2)) (node (ref U17) (pin 1))) -(net (code 90) (name "driver.range.switch.sw[0_0].com") +(net (code 89) (name "driver.range.switch.sw[0_0].com") (node (ref U18) (pin 3)) (node (ref U16) (pin 4))) -(net (code 91) (name "driver.range.switch.sw[0_1].com") +(net (code 90) (name "driver.range.switch.sw[0_1].com") (node (ref U18) (pin 1)) (node (ref U17) (pin 4)))) ) \ No newline at end of file diff --git a/examples/PcbBot/PcbBot.net b/examples/PcbBot/PcbBot.net index 28848206a..524b7bff6 100644 --- a/examples/PcbBot/PcbBot.net +++ b/examples/PcbBot/PcbBot.net @@ -463,47 +463,47 @@ (sheetpath (names "/led/") (tstamps "/02750136/")) (tstamps "0296014b")) (comp (ref "tof.elt[0]") - (value "PinSocket2.54 1x6") + (value "") (footprint "Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical") (property (name "Sheetname") (value "tof")) (property (name "Sheetfile") (value "edg.parts.Distance_Vl53l0x.Vl53l0xArray")) - (property (name "edg_path") (value "tof.elt[0].conn")) + (property (name "edg_path") (value "tof.elt[0]")) (property (name "edg_short_path") (value "tof.elt[0]")) (property (name "edg_refdes") (value "J4")) - (property (name "edg_part") (value "PinSocket2.54 1x6 (Generic)")) + (property (name "edg_part") (value "")) (sheetpath (names "/tof/") (tstamps "/02a3014a/")) (tstamps "081e022e")) (comp (ref "tof.elt[1]") - (value "PinSocket2.54 1x6") + (value "") (footprint "Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical") (property (name "Sheetname") (value "tof")) (property (name "Sheetfile") (value "edg.parts.Distance_Vl53l0x.Vl53l0xArray")) - (property (name "edg_path") (value "tof.elt[1].conn")) + (property (name "edg_path") (value "tof.elt[1]")) (property (name "edg_short_path") (value "tof.elt[1]")) (property (name "edg_refdes") (value "J5")) - (property (name "edg_part") (value "PinSocket2.54 1x6 (Generic)")) + (property (name "edg_part") (value "")) (sheetpath (names "/tof/") (tstamps "/02a3014a/")) (tstamps "0820022f")) (comp (ref "tof.elt[2]") - (value "PinSocket2.54 1x6") + (value "") (footprint "Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical") (property (name "Sheetname") (value "tof")) (property (name "Sheetfile") (value "edg.parts.Distance_Vl53l0x.Vl53l0xArray")) - (property (name "edg_path") (value "tof.elt[2].conn")) + (property (name "edg_path") (value "tof.elt[2]")) (property (name "edg_short_path") (value "tof.elt[2]")) (property (name "edg_refdes") (value "J6")) - (property (name "edg_part") (value "PinSocket2.54 1x6 (Generic)")) + (property (name "edg_part") (value "")) (sheetpath (names "/tof/") (tstamps "/02a3014a/")) (tstamps "08220230")) (comp (ref "tof.elt[3]") - (value "PinSocket2.54 1x6") + (value "") (footprint "Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical") (property (name "Sheetname") (value "tof")) (property (name "Sheetfile") (value "edg.parts.Distance_Vl53l0x.Vl53l0xArray")) - (property (name "edg_path") (value "tof.elt[3].conn")) + (property (name "edg_path") (value "tof.elt[3]")) (property (name "edg_short_path") (value "tof.elt[3]")) (property (name "edg_refdes") (value "J7")) - (property (name "edg_part") (value "PinSocket2.54 1x6 (Generic)")) + (property (name "edg_part") (value "")) (sheetpath (names "/tof/") (tstamps "/02a3014a/")) (tstamps "08240231")) (comp (ref "i2c_pull.scl_res") @@ -1207,6 +1207,10 @@ (node (ref mcu.ic) (pin 40)) (node (ref mcu.ic) (pin 41)) (node (ref led.res) (pin 2)) + (node (ref tof.elt[0]) (pin 2)) + (node (ref tof.elt[1]) (pin 2)) + (node (ref tof.elt[2]) (pin 2)) + (node (ref tof.elt[3]) (pin 2)) (node (ref imu.ic) (pin 1)) (node (ref imu.ic) (pin 2)) (node (ref imu.ic) (pin 3)) @@ -1259,10 +1263,6 @@ (node (ref mcu.vcc_cap1) (pin 2)) (node (ref mcu.prog) (pin 4)) (node (ref mcu.boot) (pin 2)) - (node (ref tof.elt[0]) (pin 2)) - (node (ref tof.elt[1]) (pin 2)) - (node (ref tof.elt[2]) (pin 2)) - (node (ref tof.elt[3]) (pin 2)) (node (ref imu.vdd_cap) (pin 2)) (node (ref imu.vddio_cap) (pin 2)) (node (ref mag.vdd_cap) (pin 2)) @@ -1338,6 +1338,10 @@ (node (ref prot_3v3) (pin 1)) (node (ref tp_3v3) (pin 1)) (node (ref mcu.ic) (pin 2)) + (node (ref tof.elt[0]) (pin 1)) + (node (ref tof.elt[1]) (pin 1)) + (node (ref tof.elt[2]) (pin 1)) + (node (ref tof.elt[3]) (pin 1)) (node (ref imu.ic) (pin 5)) (node (ref imu.ic) (pin 12)) (node (ref imu.ic) (pin 8)) @@ -1350,10 +1354,7 @@ (node (ref mcu.vcc_cap0) (pin 1)) (node (ref mcu.vcc_cap1) (pin 1)) (node (ref mcu.prog) (pin 1)) - (node (ref tof.elt[0]) (pin 1)) - (node (ref tof.elt[1]) (pin 1)) - (node (ref tof.elt[2]) (pin 1)) - (node (ref tof.elt[3]) (pin 1)) + (node (ref tof.elt[0]) (pin 6)) (node (ref i2c_pull.scl_res) (pin 1)) (node (ref i2c_pull.sda_res) (pin 1)) (node (ref imu.vddio_cap) (pin 1)) @@ -1368,8 +1369,7 @@ (node (ref cam.dovdd_cap) (pin 1)) (node (ref cam.reset_pull) (pin 1)) (node (ref mcu.en_pull.r) (pin 1)) - (node (ref oled.device) (pin 11)) - (node (ref tof.elt[0]) (pin 6))) + (node (ref oled.device) (pin 11))) (net (code 6) (name "v2v5") (node (ref reg_2v5.ic) (pin 2)) (node (ref cam.device) (pin 21)) @@ -1414,11 +1414,11 @@ (node (ref i2c_pull.scl_res) (pin 2)) (node (ref i2c_tp.tp_scl) (pin 1)) (node (ref oled.device) (pin 18)) - (node (ref cam.device) (pin 20)) (node (ref tof.elt[0]) (pin 3)) (node (ref tof.elt[1]) (pin 3)) (node (ref tof.elt[2]) (pin 3)) - (node (ref tof.elt[3]) (pin 3))) + (node (ref tof.elt[3]) (pin 3)) + (node (ref cam.device) (pin 20))) (net (code 16) (name "i2c_chain_0.sda") (node (ref mcu.ic) (pin 4)) (node (ref imu.ic) (pin 14)) @@ -1426,13 +1426,13 @@ (node (ref expander.ic) (pin 15)) (node (ref i2c_pull.sda_res) (pin 2)) (node (ref cam.device) (pin 22)) - (node (ref i2c_tp.tp_sda) (pin 1)) - (node (ref oled.device) (pin 19)) - (node (ref oled.device) (pin 20)) (node (ref tof.elt[0]) (pin 4)) (node (ref tof.elt[1]) (pin 4)) (node (ref tof.elt[2]) (pin 4)) - (node (ref tof.elt[3]) (pin 4))) + (node (ref tof.elt[3]) (pin 4)) + (node (ref i2c_tp.tp_sda) (pin 1)) + (node (ref oled.device) (pin 19)) + (node (ref oled.device) (pin 20))) (net (code 17) (name "expander.io.tof_reset_1") (node (ref expander.ic) (pin 4)) (node (ref tof.elt[1]) (pin 6))) @@ -1557,104 +1557,112 @@ (net (code 55) (name "led.res.a") (node (ref led.res) (pin 1)) (node (ref led.package) (pin 1))) -(net (code 56) (name "imu.int1") +(net (code 56) (name "tof.elt[0].ic.gpio1") + (node (ref tof.elt[0]) (pin 5))) +(net (code 57) (name "tof.elt[1].ic.gpio1") + (node (ref tof.elt[1]) (pin 5))) +(net (code 58) (name "tof.elt[2].ic.gpio1") + (node (ref tof.elt[2]) (pin 5))) +(net (code 59) (name "tof.elt[3].ic.gpio1") + (node (ref tof.elt[3]) (pin 5))) +(net (code 60) (name "imu.int1") (node (ref imu.ic) (pin 4))) -(net (code 57) (name "imu.int2") +(net (code 61) (name "imu.int2") (node (ref imu.ic) (pin 9))) -(net (code 58) (name "mag.drdy") +(net (code 62) (name "mag.drdy") (node (ref mag.ic) (pin 15))) -(net (code 59) (name "mag.set_cap.pos") +(net (code 63) (name "mag.set_cap.pos") (node (ref mag.set_cap) (pin 1)) (node (ref mag.ic) (pin 8))) -(net (code 60) (name "mag.set_cap.neg") +(net (code 64) (name "mag.set_cap.neg") (node (ref mag.set_cap) (pin 2)) (node (ref mag.ic) (pin 12))) -(net (code 61) (name "mag.c1.pos") +(net (code 65) (name "mag.c1.pos") (node (ref mag.c1) (pin 1)) (node (ref mag.ic) (pin 10))) -(net (code 62) (name "rgb.red_res.a") +(net (code 66) (name "rgb.red_res.a") (node (ref rgb.red_res) (pin 1)) (node (ref rgb.package) (pin 1))) -(net (code 63) (name "rgb.green_res.a") +(net (code 67) (name "rgb.green_res.a") (node (ref rgb.green_res) (pin 1)) (node (ref rgb.package) (pin 3))) -(net (code 64) (name "rgb.blue_res.a") +(net (code 68) (name "rgb.blue_res.a") (node (ref rgb.blue_res) (pin 1)) (node (ref rgb.package) (pin 4))) -(net (code 65) (name "oled.c1_cap.pos") +(net (code 69) (name "oled.c1_cap.pos") (node (ref oled.c1_cap) (pin 1)) (node (ref oled.device) (pin 4))) -(net (code 66) (name "oled.c1_cap.neg") +(net (code 70) (name "oled.c1_cap.neg") (node (ref oled.c1_cap) (pin 2)) (node (ref oled.device) (pin 5))) -(net (code 67) (name "oled.c2_cap.pos") +(net (code 71) (name "oled.c2_cap.pos") (node (ref oled.c2_cap) (pin 1)) (node (ref oled.device) (pin 2))) -(net (code 68) (name "oled.c2_cap.neg") +(net (code 72) (name "oled.c2_cap.neg") (node (ref oled.c2_cap) (pin 2)) (node (ref oled.device) (pin 3))) -(net (code 69) (name "oled.iref_res.a") +(net (code 73) (name "oled.iref_res.a") (node (ref oled.iref_res) (pin 1)) (node (ref oled.device) (pin 26))) -(net (code 70) (name "oled.device.vcomh") +(net (code 74) (name "oled.device.vcomh") (node (ref oled.device) (pin 27)) (node (ref oled.vcomh_cap) (pin 1))) -(net (code 71) (name "oled.device.vcc") +(net (code 75) (name "oled.device.vcc") (node (ref oled.device) (pin 28)) (node (ref oled.vcc_cap) (pin 1))) -(net (code 72) (name "npx.led[0].dout") +(net (code 76) (name "npx.led[0].dout") (node (ref npx.led[0]) (pin 2)) (node (ref npx.led[1]) (pin 4))) -(net (code 73) (name "npx.led[1].dout") +(net (code 77) (name "npx.led[1].dout") (node (ref npx.led[1]) (pin 2)) (node (ref npx.led[2]) (pin 4))) -(net (code 74) (name "npx.led[2].dout") +(net (code 78) (name "npx.led[2].dout") (node (ref npx.led[2]) (pin 2)) (node (ref npx.led[3]) (pin 4))) -(net (code 75) (name "npx.led[3].dout") +(net (code 79) (name "npx.led[3].dout") (node (ref npx.led[3]) (pin 2)) (node (ref npx.led[4]) (pin 4))) -(net (code 76) (name "npx.led[4].dout") +(net (code 80) (name "npx.led[4].dout") (node (ref npx.led[4]) (pin 2)) (node (ref npx.led[5]) (pin 4))) -(net (code 77) (name "npx.led[5].dout") +(net (code 81) (name "npx.led[5].dout") (node (ref npx.led[5]) (pin 2)) (node (ref npx.led[6]) (pin 4))) -(net (code 78) (name "npx.led[6].dout") +(net (code 82) (name "npx.led[6].dout") (node (ref npx.led[6]) (pin 2)) (node (ref npx.led[7]) (pin 4))) -(net (code 79) (name "npx.led[7].dout") +(net (code 83) (name "npx.led[7].dout") (node (ref npx.led[7]) (pin 2)) (node (ref npx.led[8]) (pin 4))) -(net (code 80) (name "npx.led[8].dout") +(net (code 84) (name "npx.led[8].dout") (node (ref npx.led[8]) (pin 2)) (node (ref npx.led[9]) (pin 4))) -(net (code 81) (name "npx.led[9].dout") +(net (code 85) (name "npx.led[9].dout") (node (ref npx.led[9]) (pin 2)) (node (ref npx.led[10]) (pin 4))) -(net (code 82) (name "npx.led[10].dout") +(net (code 86) (name "npx.led[10].dout") (node (ref npx.led[10]) (pin 2)) (node (ref npx.led[11]) (pin 4))) -(net (code 83) (name "npx.led[11].dout") +(net (code 87) (name "npx.led[11].dout") (node (ref npx.led[11]) (pin 2)) (node (ref npx.led[12]) (pin 4))) -(net (code 84) (name "npx.led[12].dout") +(net (code 88) (name "npx.led[12].dout") (node (ref npx.led[12]) (pin 2)) (node (ref npx.led[13]) (pin 4))) -(net (code 85) (name "npx.led[13].dout") +(net (code 89) (name "npx.led[13].dout") (node (ref npx.led[13]) (pin 2)) (node (ref npx.led[14]) (pin 4))) -(net (code 86) (name "npx.led[14].dout") +(net (code 90) (name "npx.led[14].dout") (node (ref npx.led[14]) (pin 2)) (node (ref npx.led[15]) (pin 4))) -(net (code 87) (name "npx_key.dout") +(net (code 91) (name "npx_key.dout") (node (ref npx_key) (pin 2))) -(net (code 88) (name "cam.reset_cap.pos") +(net (code 92) (name "cam.reset_cap.pos") (node (ref cam.reset_cap) (pin 1)) (node (ref cam.reset_pull) (pin 2)) (node (ref cam.device) (pin 19))) -(net (code 89) (name "cam.device.y.0") +(net (code 93) (name "cam.device.y.0") (node (ref cam.device) (pin 1))) -(net (code 90) (name "cam.device.y.1") +(net (code 94) (name "cam.device.y.1") (node (ref cam.device) (pin 2)))) ) \ No newline at end of file diff --git a/examples/PcbBot/PcbBot.ref.net b/examples/PcbBot/PcbBot.ref.net index 91159b5ba..681c7a969 100644 --- a/examples/PcbBot/PcbBot.ref.net +++ b/examples/PcbBot/PcbBot.ref.net @@ -463,47 +463,47 @@ (sheetpath (names "/led/") (tstamps "/02750136/")) (tstamps "0296014b")) (comp (ref "J4") - (value "PinSocket2.54 1x6") + (value "") (footprint "Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical") (property (name "Sheetname") (value "tof")) (property (name "Sheetfile") (value "edg.parts.Distance_Vl53l0x.Vl53l0xArray")) - (property (name "edg_path") (value "tof.elt[0].conn")) + (property (name "edg_path") (value "tof.elt[0]")) (property (name "edg_short_path") (value "tof.elt[0]")) (property (name "edg_refdes") (value "J4")) - (property (name "edg_part") (value "PinSocket2.54 1x6 (Generic)")) + (property (name "edg_part") (value "")) (sheetpath (names "/tof/") (tstamps "/02a3014a/")) (tstamps "081e022e")) (comp (ref "J5") - (value "PinSocket2.54 1x6") + (value "") (footprint "Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical") (property (name "Sheetname") (value "tof")) (property (name "Sheetfile") (value "edg.parts.Distance_Vl53l0x.Vl53l0xArray")) - (property (name "edg_path") (value "tof.elt[1].conn")) + (property (name "edg_path") (value "tof.elt[1]")) (property (name "edg_short_path") (value "tof.elt[1]")) (property (name "edg_refdes") (value "J5")) - (property (name "edg_part") (value "PinSocket2.54 1x6 (Generic)")) + (property (name "edg_part") (value "")) (sheetpath (names "/tof/") (tstamps "/02a3014a/")) (tstamps "0820022f")) (comp (ref "J6") - (value "PinSocket2.54 1x6") + (value "") (footprint "Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical") (property (name "Sheetname") (value "tof")) (property (name "Sheetfile") (value "edg.parts.Distance_Vl53l0x.Vl53l0xArray")) - (property (name "edg_path") (value "tof.elt[2].conn")) + (property (name "edg_path") (value "tof.elt[2]")) (property (name "edg_short_path") (value "tof.elt[2]")) (property (name "edg_refdes") (value "J6")) - (property (name "edg_part") (value "PinSocket2.54 1x6 (Generic)")) + (property (name "edg_part") (value "")) (sheetpath (names "/tof/") (tstamps "/02a3014a/")) (tstamps "08220230")) (comp (ref "J7") - (value "PinSocket2.54 1x6") + (value "") (footprint "Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical") (property (name "Sheetname") (value "tof")) (property (name "Sheetfile") (value "edg.parts.Distance_Vl53l0x.Vl53l0xArray")) - (property (name "edg_path") (value "tof.elt[3].conn")) + (property (name "edg_path") (value "tof.elt[3]")) (property (name "edg_short_path") (value "tof.elt[3]")) (property (name "edg_refdes") (value "J7")) - (property (name "edg_part") (value "PinSocket2.54 1x6 (Generic)")) + (property (name "edg_part") (value "")) (sheetpath (names "/tof/") (tstamps "/02a3014a/")) (tstamps "08240231")) (comp (ref "R10") @@ -1207,6 +1207,10 @@ (node (ref U3) (pin 40)) (node (ref U3) (pin 41)) (node (ref R9) (pin 2)) + (node (ref J4) (pin 2)) + (node (ref J5) (pin 2)) + (node (ref J6) (pin 2)) + (node (ref J7) (pin 2)) (node (ref U5) (pin 1)) (node (ref U5) (pin 2)) (node (ref U5) (pin 3)) @@ -1259,10 +1263,6 @@ (node (ref C6) (pin 2)) (node (ref J3) (pin 4)) (node (ref SW2) (pin 2)) - (node (ref J4) (pin 2)) - (node (ref J5) (pin 2)) - (node (ref J6) (pin 2)) - (node (ref J7) (pin 2)) (node (ref C8) (pin 2)) (node (ref C9) (pin 2)) (node (ref C10) (pin 2)) @@ -1338,6 +1338,10 @@ (node (ref D5) (pin 1)) (node (ref TP3) (pin 1)) (node (ref U3) (pin 2)) + (node (ref J4) (pin 1)) + (node (ref J5) (pin 1)) + (node (ref J6) (pin 1)) + (node (ref J7) (pin 1)) (node (ref U5) (pin 5)) (node (ref U5) (pin 12)) (node (ref U5) (pin 8)) @@ -1350,10 +1354,7 @@ (node (ref C5) (pin 1)) (node (ref C6) (pin 1)) (node (ref J3) (pin 1)) - (node (ref J4) (pin 1)) - (node (ref J5) (pin 1)) - (node (ref J6) (pin 1)) - (node (ref J7) (pin 1)) + (node (ref J4) (pin 6)) (node (ref R10) (pin 1)) (node (ref R11) (pin 1)) (node (ref C9) (pin 1)) @@ -1368,8 +1369,7 @@ (node (ref C24) (pin 1)) (node (ref R18) (pin 1)) (node (ref R8) (pin 1)) - (node (ref J8) (pin 11)) - (node (ref J4) (pin 6))) + (node (ref J8) (pin 11))) (net (code 6) (name "v2v5") (node (ref U9) (pin 2)) (node (ref J13) (pin 21)) @@ -1414,11 +1414,11 @@ (node (ref R10) (pin 2)) (node (ref TP4) (pin 1)) (node (ref J8) (pin 18)) - (node (ref J13) (pin 20)) (node (ref J4) (pin 3)) (node (ref J5) (pin 3)) (node (ref J6) (pin 3)) - (node (ref J7) (pin 3))) + (node (ref J7) (pin 3)) + (node (ref J13) (pin 20))) (net (code 16) (name "i2c_chain_0.sda") (node (ref U3) (pin 4)) (node (ref U5) (pin 14)) @@ -1426,13 +1426,13 @@ (node (ref U7) (pin 15)) (node (ref R11) (pin 2)) (node (ref J13) (pin 22)) - (node (ref TP5) (pin 1)) - (node (ref J8) (pin 19)) - (node (ref J8) (pin 20)) (node (ref J4) (pin 4)) (node (ref J5) (pin 4)) (node (ref J6) (pin 4)) - (node (ref J7) (pin 4))) + (node (ref J7) (pin 4)) + (node (ref TP5) (pin 1)) + (node (ref J8) (pin 19)) + (node (ref J8) (pin 20))) (net (code 17) (name "expander.io.tof_reset_1") (node (ref U7) (pin 4)) (node (ref J5) (pin 6))) @@ -1557,104 +1557,112 @@ (net (code 55) (name "led.res.a") (node (ref R9) (pin 1)) (node (ref D7) (pin 1))) -(net (code 56) (name "imu.int1") +(net (code 56) (name "tof.elt[0].ic.gpio1") + (node (ref J4) (pin 5))) +(net (code 57) (name "tof.elt[1].ic.gpio1") + (node (ref J5) (pin 5))) +(net (code 58) (name "tof.elt[2].ic.gpio1") + (node (ref J6) (pin 5))) +(net (code 59) (name "tof.elt[3].ic.gpio1") + (node (ref J7) (pin 5))) +(net (code 60) (name "imu.int1") (node (ref U5) (pin 4))) -(net (code 57) (name "imu.int2") +(net (code 61) (name "imu.int2") (node (ref U5) (pin 9))) -(net (code 58) (name "mag.drdy") +(net (code 62) (name "mag.drdy") (node (ref U6) (pin 15))) -(net (code 59) (name "mag.set_cap.pos") +(net (code 63) (name "mag.set_cap.pos") (node (ref C11) (pin 1)) (node (ref U6) (pin 8))) -(net (code 60) (name "mag.set_cap.neg") +(net (code 64) (name "mag.set_cap.neg") (node (ref C11) (pin 2)) (node (ref U6) (pin 12))) -(net (code 61) (name "mag.c1.pos") +(net (code 65) (name "mag.c1.pos") (node (ref C12) (pin 1)) (node (ref U6) (pin 10))) -(net (code 62) (name "rgb.red_res.a") +(net (code 66) (name "rgb.red_res.a") (node (ref R12) (pin 1)) (node (ref D8) (pin 1))) -(net (code 63) (name "rgb.green_res.a") +(net (code 67) (name "rgb.green_res.a") (node (ref R13) (pin 1)) (node (ref D8) (pin 3))) -(net (code 64) (name "rgb.blue_res.a") +(net (code 68) (name "rgb.blue_res.a") (node (ref R14) (pin 1)) (node (ref D8) (pin 4))) -(net (code 65) (name "oled.c1_cap.pos") +(net (code 69) (name "oled.c1_cap.pos") (node (ref C14) (pin 1)) (node (ref J8) (pin 4))) -(net (code 66) (name "oled.c1_cap.neg") +(net (code 70) (name "oled.c1_cap.neg") (node (ref C14) (pin 2)) (node (ref J8) (pin 5))) -(net (code 67) (name "oled.c2_cap.pos") +(net (code 71) (name "oled.c2_cap.pos") (node (ref C15) (pin 1)) (node (ref J8) (pin 2))) -(net (code 68) (name "oled.c2_cap.neg") +(net (code 72) (name "oled.c2_cap.neg") (node (ref C15) (pin 2)) (node (ref J8) (pin 3))) -(net (code 69) (name "oled.iref_res.a") +(net (code 73) (name "oled.iref_res.a") (node (ref R15) (pin 1)) (node (ref J8) (pin 26))) -(net (code 70) (name "oled.device.vcomh") +(net (code 74) (name "oled.device.vcomh") (node (ref J8) (pin 27)) (node (ref C16) (pin 1))) -(net (code 71) (name "oled.device.vcc") +(net (code 75) (name "oled.device.vcc") (node (ref J8) (pin 28)) (node (ref C19) (pin 1))) -(net (code 72) (name "npx.led[0].dout") +(net (code 76) (name "npx.led[0].dout") (node (ref D9) (pin 2)) (node (ref D10) (pin 4))) -(net (code 73) (name "npx.led[1].dout") +(net (code 77) (name "npx.led[1].dout") (node (ref D10) (pin 2)) (node (ref D11) (pin 4))) -(net (code 74) (name "npx.led[2].dout") +(net (code 78) (name "npx.led[2].dout") (node (ref D11) (pin 2)) (node (ref D12) (pin 4))) -(net (code 75) (name "npx.led[3].dout") +(net (code 79) (name "npx.led[3].dout") (node (ref D12) (pin 2)) (node (ref D13) (pin 4))) -(net (code 76) (name "npx.led[4].dout") +(net (code 80) (name "npx.led[4].dout") (node (ref D13) (pin 2)) (node (ref D14) (pin 4))) -(net (code 77) (name "npx.led[5].dout") +(net (code 81) (name "npx.led[5].dout") (node (ref D14) (pin 2)) (node (ref D15) (pin 4))) -(net (code 78) (name "npx.led[6].dout") +(net (code 82) (name "npx.led[6].dout") (node (ref D15) (pin 2)) (node (ref D16) (pin 4))) -(net (code 79) (name "npx.led[7].dout") +(net (code 83) (name "npx.led[7].dout") (node (ref D16) (pin 2)) (node (ref D17) (pin 4))) -(net (code 80) (name "npx.led[8].dout") +(net (code 84) (name "npx.led[8].dout") (node (ref D17) (pin 2)) (node (ref D18) (pin 4))) -(net (code 81) (name "npx.led[9].dout") +(net (code 85) (name "npx.led[9].dout") (node (ref D18) (pin 2)) (node (ref D19) (pin 4))) -(net (code 82) (name "npx.led[10].dout") +(net (code 86) (name "npx.led[10].dout") (node (ref D19) (pin 2)) (node (ref D20) (pin 4))) -(net (code 83) (name "npx.led[11].dout") +(net (code 87) (name "npx.led[11].dout") (node (ref D20) (pin 2)) (node (ref D21) (pin 4))) -(net (code 84) (name "npx.led[12].dout") +(net (code 88) (name "npx.led[12].dout") (node (ref D21) (pin 2)) (node (ref D22) (pin 4))) -(net (code 85) (name "npx.led[13].dout") +(net (code 89) (name "npx.led[13].dout") (node (ref D22) (pin 2)) (node (ref D23) (pin 4))) -(net (code 86) (name "npx.led[14].dout") +(net (code 90) (name "npx.led[14].dout") (node (ref D23) (pin 2)) (node (ref D24) (pin 4))) -(net (code 87) (name "npx_key.dout") +(net (code 91) (name "npx_key.dout") (node (ref D25) (pin 2))) -(net (code 88) (name "cam.reset_cap.pos") +(net (code 92) (name "cam.reset_cap.pos") (node (ref C25) (pin 1)) (node (ref R18) (pin 2)) (node (ref J13) (pin 19))) -(net (code 89) (name "cam.device.y.0") +(net (code 93) (name "cam.device.y.0") (node (ref J13) (pin 1))) -(net (code 90) (name "cam.device.y.1") +(net (code 94) (name "cam.device.y.1") (node (ref J13) (pin 2)))) ) \ No newline at end of file diff --git a/examples/RobotDriver/RobotDriver.net b/examples/RobotDriver/RobotDriver.net index e829189a1..6edd8fcd8 100644 --- a/examples/RobotDriver/RobotDriver.net +++ b/examples/RobotDriver/RobotDriver.net @@ -309,36 +309,36 @@ (sheetpath (names "/mcu/en_pull/") (tstamps "/02850146/0b9c02f0/")) (tstamps "00640064")) (comp (ref "tof.elt[0]") - (value "B6B-PH-K") - (footprint "Connector_JST:JST_PH_B6B-PH-K_1x06_P2.00mm_Vertical") + (value "") + (footprint "Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical") (property (name "Sheetname") (value "tof")) (property (name "Sheetfile") (value "edg.parts.Distance_Vl53l0x.Vl53l0xArray")) - (property (name "edg_path") (value "tof.elt[0].conn")) + (property (name "edg_path") (value "tof.elt[0]")) (property (name "edg_short_path") (value "tof.elt[0]")) (property (name "edg_refdes") (value "J3")) - (property (name "edg_part") (value "B6B-PH-K (JST)")) + (property (name "edg_part") (value "")) (sheetpath (names "/tof/") (tstamps "/02a3014a/")) (tstamps "081e022e")) (comp (ref "tof.elt[1]") - (value "B6B-PH-K") - (footprint "Connector_JST:JST_PH_B6B-PH-K_1x06_P2.00mm_Vertical") + (value "") + (footprint "Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical") (property (name "Sheetname") (value "tof")) (property (name "Sheetfile") (value "edg.parts.Distance_Vl53l0x.Vl53l0xArray")) - (property (name "edg_path") (value "tof.elt[1].conn")) + (property (name "edg_path") (value "tof.elt[1]")) (property (name "edg_short_path") (value "tof.elt[1]")) (property (name "edg_refdes") (value "J4")) - (property (name "edg_part") (value "B6B-PH-K (JST)")) + (property (name "edg_part") (value "")) (sheetpath (names "/tof/") (tstamps "/02a3014a/")) (tstamps "0820022f")) (comp (ref "tof.elt[2]") - (value "B6B-PH-K") - (footprint "Connector_JST:JST_PH_B6B-PH-K_1x06_P2.00mm_Vertical") + (value "") + (footprint "Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical") (property (name "Sheetname") (value "tof")) (property (name "Sheetfile") (value "edg.parts.Distance_Vl53l0x.Vl53l0xArray")) - (property (name "edg_path") (value "tof.elt[2].conn")) + (property (name "edg_path") (value "tof.elt[2]")) (property (name "edg_short_path") (value "tof.elt[2]")) (property (name "edg_refdes") (value "J5")) - (property (name "edg_part") (value "B6B-PH-K (JST)")) + (property (name "edg_part") (value "")) (sheetpath (names "/tof/") (tstamps "/02a3014a/")) (tstamps "08220230")) (comp (ref "i2c_pull.scl_res") @@ -949,6 +949,9 @@ (node (ref mcu.ic) (pin 15)) (node (ref mcu.ic) (pin 38)) (node (ref mcu.ic) (pin 39)) + (node (ref tof.elt[0]) (pin 2)) + (node (ref tof.elt[1]) (pin 2)) + (node (ref tof.elt[2]) (pin 2)) (node (ref imu.ic) (pin 1)) (node (ref imu.ic) (pin 2)) (node (ref imu.ic) (pin 3)) @@ -982,9 +985,6 @@ (node (ref mcu.vcc_cap1) (pin 2)) (node (ref mcu.prog) (pin 4)) (node (ref mcu.boot) (pin 2)) - (node (ref tof.elt[0]) (pin 2)) - (node (ref tof.elt[1]) (pin 2)) - (node (ref tof.elt[2]) (pin 2)) (node (ref lcd.device) (pin 6)) (node (ref lcd.vcomh_cap) (pin 2)) (node (ref lcd.vdd_cap1) (pin 2)) @@ -1010,6 +1010,9 @@ (node (ref tp_3v3) (pin 1)) (node (ref prot_3v3) (pin 1)) (node (ref mcu.ic) (pin 2)) + (node (ref tof.elt[0]) (pin 1)) + (node (ref tof.elt[1]) (pin 1)) + (node (ref tof.elt[2]) (pin 1)) (node (ref imu.ic) (pin 5)) (node (ref imu.ic) (pin 12)) (node (ref imu.ic) (pin 8)) @@ -1019,9 +1022,6 @@ (node (ref mcu.vcc_cap0) (pin 1)) (node (ref mcu.vcc_cap1) (pin 1)) (node (ref mcu.prog) (pin 1)) - (node (ref tof.elt[0]) (pin 1)) - (node (ref tof.elt[1]) (pin 1)) - (node (ref tof.elt[2]) (pin 1)) (node (ref i2c_pull.scl_res) (pin 1)) (node (ref i2c_pull.sda_res) (pin 1)) (node (ref lcd.device) (pin 7)) @@ -1057,220 +1057,225 @@ (node (ref imu.ic) (pin 14)) (node (ref expander.ic) (pin 15)) (node (ref i2c_pull.sda_res) (pin 2)) - (node (ref i2c_tp.tp_sda) (pin 1)) (node (ref tof.elt[0]) (pin 4)) (node (ref tof.elt[1]) (pin 4)) - (node (ref tof.elt[2]) (pin 4))) + (node (ref tof.elt[2]) (pin 4)) + (node (ref i2c_tp.tp_sda) (pin 1))) (net (code 7) (name "lcd.spi.sck") (node (ref mcu.ic) (pin 9)) (node (ref lcd.device) (pin 11))) (net (code 8) (name "lcd.spi.mosi") (node (ref mcu.ic) (pin 8)) (node (ref lcd.device) (pin 12))) -(net (code 9) (name "lcd.spi.miso")) -(net (code 10) (name "lcd.cs") +(net (code 9) (name "lcd.cs") (node (ref mcu.ic) (pin 13)) (node (ref lcd.device) (pin 8))) -(net (code 11) (name "lcd.reset") +(net (code 10) (name "lcd.reset") (node (ref mcu.ic) (pin 12)) (node (ref lcd.device) (pin 9))) -(net (code 12) (name "lcd.dc") +(net (code 11) (name "lcd.dc") (node (ref mcu.ic) (pin 10)) (node (ref lcd.device) (pin 10))) -(net (code 13) (name "isense.out") +(net (code 12) (name "isense.out") (node (ref mcu.ic) (pin 4)) (node (ref isense.amp.rf) (pin 1)) (node (ref isense.amp.amp.ic) (pin 4))) -(net (code 14) (name "expander.io.tof_reset_0") +(net (code 13) (name "expander.io.tof_reset_0") (node (ref expander.ic) (pin 10)) (node (ref tof.elt[0]) (pin 6))) -(net (code 15) (name "expander.io.tof_reset_1") +(net (code 14) (name "expander.io.tof_reset_1") (node (ref expander.ic) (pin 11)) (node (ref tof.elt[1]) (pin 6))) -(net (code 16) (name "expander.io.tof_reset_2") +(net (code 15) (name "expander.io.tof_reset_2") (node (ref expander.ic) (pin 12)) (node (ref tof.elt[2]) (pin 6))) -(net (code 17) (name "expander.io.led_0") +(net (code 16) (name "expander.io.led_0") (node (ref expander.ic) (pin 4)) (node (ref led_res) (pin 8))) -(net (code 18) (name "expander.io.led_1") +(net (code 17) (name "expander.io.led_1") (node (ref expander.ic) (pin 5)) (node (ref led_res) (pin 7))) -(net (code 19) (name "expander.io.led_2") +(net (code 18) (name "expander.io.led_2") (node (ref expander.ic) (pin 6)) (node (ref led_res) (pin 6))) -(net (code 20) (name "expander.io.led_3") +(net (code 19) (name "expander.io.led_3") (node (ref expander.ic) (pin 7)) (node (ref led_res) (pin 5))) -(net (code 21) (name "spk_chain_0") +(net (code 20) (name "spk_chain_0") (node (ref mcu.ic) (pin 11)) (node (ref spk_tp) (pin 1)) (node (ref spk_drv.inp_cap) (pin 2))) -(net (code 22) (name "spk_chain_1.a") +(net (code 21) (name "spk_chain_1.a") (node (ref spk_drv.ic) (pin 8)) (node (ref spk) (pin 1))) -(net (code 23) (name "spk_chain_1.b") +(net (code 22) (name "spk_chain_1.b") (node (ref spk_drv.ic) (pin 5)) (node (ref spk) (pin 2))) -(net (code 24) (name "ws2812bArray.din") +(net (code 23) (name "ws2812bArray.din") (node (ref mcu.ic) (pin 23)) (node (ref ws2812bArray.led[0]) (pin 4))) -(net (code 25) (name "ws2812bArray.dout") +(net (code 24) (name "ws2812bArray.dout") (node (ref ws2812bArray.led[4]) (pin 2)) (node (ref led_pixel) (pin 2))) -(net (code 26) (name "motor_driver1.ain1") +(net (code 25) (name "motor_driver1.ain1") (node (ref mcu.ic) (pin 30)) (node (ref motor_driver1.ic) (pin 16))) -(net (code 27) (name "motor_driver1.ain2") +(net (code 26) (name "motor_driver1.ain2") (node (ref mcu.ic) (pin 31)) (node (ref motor_driver1.ic) (pin 15))) -(net (code 28) (name "motor_driver1.bin1") +(net (code 27) (name "motor_driver1.bin1") (node (ref mcu.ic) (pin 36)) (node (ref motor_driver1.ic) (pin 9))) -(net (code 29) (name "motor_driver1.bin2") +(net (code 28) (name "motor_driver1.bin2") (node (ref mcu.ic) (pin 33)) (node (ref motor_driver1.ic) (pin 10))) -(net (code 30) (name "m1_a.a") +(net (code 29) (name "m1_a.a") (node (ref motor_driver1.ic) (pin 2)) (node (ref m1_a) (pin 2))) -(net (code 31) (name "m1_a.b") +(net (code 30) (name "m1_a.b") (node (ref motor_driver1.ic) (pin 4)) (node (ref m1_a) (pin 1))) -(net (code 32) (name "m1_b.a") +(net (code 31) (name "m1_b.a") (node (ref motor_driver1.ic) (pin 7)) (node (ref m1_b) (pin 2))) -(net (code 33) (name "m1_b.b") +(net (code 32) (name "m1_b.b") (node (ref motor_driver1.ic) (pin 5)) (node (ref m1_b) (pin 1))) -(net (code 34) (name "motor_driver2.ain1") +(net (code 33) (name "motor_driver2.ain1") (node (ref mcu.ic) (pin 26)) (node (ref motor_driver2.ic) (pin 16))) -(net (code 35) (name "motor_driver2.ain2") +(net (code 34) (name "motor_driver2.ain2") (node (ref mcu.ic) (pin 27)) (node (ref motor_driver2.ic) (pin 15))) -(net (code 36) (name "motor_driver2.bin1") +(net (code 35) (name "motor_driver2.bin1") (node (ref mcu.ic) (pin 29)) (node (ref motor_driver2.ic) (pin 9))) -(net (code 37) (name "motor_driver2.bin2") +(net (code 36) (name "motor_driver2.bin2") (node (ref mcu.ic) (pin 28)) (node (ref motor_driver2.ic) (pin 10))) -(net (code 38) (name "m2_a.a") +(net (code 37) (name "m2_a.a") (node (ref motor_driver2.ic) (pin 2)) (node (ref m2_a) (pin 2))) -(net (code 39) (name "m2_a.b") +(net (code 38) (name "m2_a.b") (node (ref motor_driver2.ic) (pin 4)) (node (ref m2_a) (pin 1))) -(net (code 40) (name "m2_b.a") +(net (code 39) (name "m2_b.a") (node (ref motor_driver2.ic) (pin 7)) (node (ref m2_b) (pin 2))) -(net (code 41) (name "m2_b.b") +(net (code 40) (name "m2_b.b") (node (ref motor_driver2.ic) (pin 5)) (node (ref m2_b) (pin 1))) -(net (code 42) (name "servo.pwm") +(net (code 41) (name "servo.pwm") (node (ref mcu.ic) (pin 37)) (node (ref servo) (pin 1))) -(net (code 43) (name "led_res.a.0") +(net (code 42) (name "led_res.a.0") (node (ref led_res) (pin 1)) (node (ref leds.led[0]) (pin 1))) -(net (code 44) (name "led_res.a.1") +(net (code 43) (name "led_res.a.1") (node (ref led_res) (pin 2)) (node (ref leds.led[1]) (pin 1))) -(net (code 45) (name "led_res.a.2") +(net (code 44) (name "led_res.a.2") (node (ref led_res) (pin 3)) (node (ref leds.led[2]) (pin 1))) -(net (code 46) (name "led_res.a.3") +(net (code 45) (name "led_res.a.3") (node (ref led_res) (pin 4)) (node (ref leds.led[3]) (pin 1))) -(net (code 47) (name "isense.amp.r2.b") +(net (code 46) (name "isense.amp.r2.b") (node (ref isense.amp.r2) (pin 2)) (node (ref isense.amp.amp.ic) (pin 1)) (node (ref isense.amp.rg) (pin 2))) -(net (code 48) (name "isense.amp.r1.b") +(net (code 47) (name "isense.amp.r1.b") (node (ref isense.amp.r1) (pin 2)) (node (ref isense.amp.amp.ic) (pin 3)) (node (ref isense.amp.rf) (pin 2))) -(net (code 49) (name "reg_3v3.fb.output") +(net (code 48) (name "reg_3v3.fb.output") (node (ref reg_3v3.ic) (pin 5)) (node (ref reg_3v3.fb.top_res) (pin 2)) (node (ref reg_3v3.fb.bottom_res) (pin 1))) -(net (code 50) (name "reg_3v3.power_path.switch") +(net (code 49) (name "reg_3v3.power_path.switch") (node (ref reg_3v3.ic) (pin 3)) (node (ref reg_3v3.power_path.inductor) (pin 1))) -(net (code 51) (name "mcu.program_uart_node.a_tx") +(net (code 50) (name "mcu.program_uart_node.a_tx") (node (ref mcu.ic) (pin 35)) (node (ref mcu.prog) (pin 2))) -(net (code 52) (name "mcu.program_uart_node.b_tx") +(net (code 51) (name "mcu.program_uart_node.b_tx") (node (ref mcu.ic) (pin 34)) (node (ref mcu.prog) (pin 3))) -(net (code 53) (name "mcu.program_en_node") +(net (code 52) (name "mcu.program_en_node") (node (ref mcu.ic) (pin 3)) (node (ref mcu.en_pull.r) (pin 2)) (node (ref mcu.en_pull.c) (pin 1))) -(net (code 54) (name "mcu.program_boot_node") +(net (code 53) (name "mcu.program_boot_node") (node (ref mcu.ic) (pin 25)) (node (ref mcu.boot) (pin 1))) -(net (code 55) (name "mcu.ic.io2") +(net (code 54) (name "mcu.ic.io2") (node (ref mcu.ic) (pin 24))) -(net (code 56) (name "lcd.c1_cap.pos") +(net (code 55) (name "tof.elt[0].ic.gpio1") + (node (ref tof.elt[0]) (pin 5))) +(net (code 56) (name "tof.elt[1].ic.gpio1") + (node (ref tof.elt[1]) (pin 5))) +(net (code 57) (name "tof.elt[2].ic.gpio1") + (node (ref tof.elt[2]) (pin 5))) +(net (code 58) (name "lcd.c1_cap.pos") (node (ref lcd.c1_cap) (pin 1)) (node (ref lcd.device) (pin 3))) -(net (code 57) (name "lcd.c1_cap.neg") +(net (code 59) (name "lcd.c1_cap.neg") (node (ref lcd.c1_cap) (pin 2)) (node (ref lcd.device) (pin 4))) -(net (code 58) (name "lcd.c2_cap.pos") +(net (code 60) (name "lcd.c2_cap.pos") (node (ref lcd.c2_cap) (pin 1)) (node (ref lcd.device) (pin 1))) -(net (code 59) (name "lcd.c2_cap.neg") +(net (code 61) (name "lcd.c2_cap.neg") (node (ref lcd.c2_cap) (pin 2)) (node (ref lcd.device) (pin 2))) -(net (code 60) (name "lcd.iref_res.a") +(net (code 62) (name "lcd.iref_res.a") (node (ref lcd.iref_res) (pin 1)) (node (ref lcd.device) (pin 13))) -(net (code 61) (name "lcd.device.vcomh") +(net (code 63) (name "lcd.device.vcomh") (node (ref lcd.device) (pin 14)) (node (ref lcd.vcomh_cap) (pin 1))) -(net (code 62) (name "lcd.device.vcc") +(net (code 64) (name "lcd.device.vcc") (node (ref lcd.device) (pin 15)) (node (ref lcd.vcc_cap1) (pin 1)) (node (ref lcd.vcc_cap2) (pin 1))) -(net (code 63) (name "imu.int1") +(net (code 65) (name "imu.int1") (node (ref imu.ic) (pin 4))) -(net (code 64) (name "imu.int2") +(net (code 66) (name "imu.int2") (node (ref imu.ic) (pin 9))) -(net (code 65) (name "spk_drv.inp_cap.pos") +(net (code 67) (name "spk_drv.inp_cap.pos") (node (ref spk_drv.inp_cap) (pin 1)) (node (ref spk_drv.inp_res) (pin 1))) -(net (code 66) (name "spk_drv.inp_res.b") +(net (code 68) (name "spk_drv.inp_res.b") (node (ref spk_drv.inp_res) (pin 2)) (node (ref spk_drv.ic) (pin 4))) -(net (code 67) (name "spk_drv.inn_cap.pos") +(net (code 69) (name "spk_drv.inn_cap.pos") (node (ref spk_drv.inn_cap) (pin 1)) (node (ref spk_drv.inn_res) (pin 1))) -(net (code 68) (name "spk_drv.inn_res.b") +(net (code 70) (name "spk_drv.inn_res.b") (node (ref spk_drv.inn_res) (pin 2)) (node (ref spk_drv.ic) (pin 3))) -(net (code 69) (name "ws2812bArray.led[0].dout") +(net (code 71) (name "ws2812bArray.led[0].dout") (node (ref ws2812bArray.led[0]) (pin 2)) (node (ref ws2812bArray.led[1]) (pin 4))) -(net (code 70) (name "ws2812bArray.led[1].dout") +(net (code 72) (name "ws2812bArray.led[1].dout") (node (ref ws2812bArray.led[1]) (pin 2)) (node (ref ws2812bArray.led[2]) (pin 4))) -(net (code 71) (name "ws2812bArray.led[2].dout") +(net (code 73) (name "ws2812bArray.led[2].dout") (node (ref ws2812bArray.led[2]) (pin 2)) (node (ref ws2812bArray.led[3]) (pin 4))) -(net (code 72) (name "ws2812bArray.led[3].dout") +(net (code 74) (name "ws2812bArray.led[3].dout") (node (ref ws2812bArray.led[3]) (pin 2)) (node (ref ws2812bArray.led[4]) (pin 4))) -(net (code 73) (name "motor_driver1.ic.vint") +(net (code 75) (name "motor_driver1.ic.vint") (node (ref motor_driver1.ic) (pin 14)) (node (ref motor_driver1.vint_cap) (pin 1))) -(net (code 74) (name "motor_driver1.vcp_cap.pos") +(net (code 76) (name "motor_driver1.vcp_cap.pos") (node (ref motor_driver1.vcp_cap) (pin 1)) (node (ref motor_driver1.ic) (pin 11))) -(net (code 75) (name "motor_driver2.ic.vint") +(net (code 77) (name "motor_driver2.ic.vint") (node (ref motor_driver2.ic) (pin 14)) (node (ref motor_driver2.vint_cap) (pin 1))) -(net (code 76) (name "motor_driver2.vcp_cap.pos") +(net (code 78) (name "motor_driver2.vcp_cap.pos") (node (ref motor_driver2.vcp_cap) (pin 1)) (node (ref motor_driver2.ic) (pin 11)))) ) \ No newline at end of file diff --git a/examples/RobotDriver/RobotDriver.ref.net b/examples/RobotDriver/RobotDriver.ref.net index 61c9ed1e1..91634f04b 100644 --- a/examples/RobotDriver/RobotDriver.ref.net +++ b/examples/RobotDriver/RobotDriver.ref.net @@ -309,36 +309,36 @@ (sheetpath (names "/mcu/en_pull/") (tstamps "/02850146/0b9c02f0/")) (tstamps "00640064")) (comp (ref "J3") - (value "B6B-PH-K") - (footprint "Connector_JST:JST_PH_B6B-PH-K_1x06_P2.00mm_Vertical") + (value "") + (footprint "Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical") (property (name "Sheetname") (value "tof")) (property (name "Sheetfile") (value "edg.parts.Distance_Vl53l0x.Vl53l0xArray")) - (property (name "edg_path") (value "tof.elt[0].conn")) + (property (name "edg_path") (value "tof.elt[0]")) (property (name "edg_short_path") (value "tof.elt[0]")) (property (name "edg_refdes") (value "J3")) - (property (name "edg_part") (value "B6B-PH-K (JST)")) + (property (name "edg_part") (value "")) (sheetpath (names "/tof/") (tstamps "/02a3014a/")) (tstamps "081e022e")) (comp (ref "J4") - (value "B6B-PH-K") - (footprint "Connector_JST:JST_PH_B6B-PH-K_1x06_P2.00mm_Vertical") + (value "") + (footprint "Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical") (property (name "Sheetname") (value "tof")) (property (name "Sheetfile") (value "edg.parts.Distance_Vl53l0x.Vl53l0xArray")) - (property (name "edg_path") (value "tof.elt[1].conn")) + (property (name "edg_path") (value "tof.elt[1]")) (property (name "edg_short_path") (value "tof.elt[1]")) (property (name "edg_refdes") (value "J4")) - (property (name "edg_part") (value "B6B-PH-K (JST)")) + (property (name "edg_part") (value "")) (sheetpath (names "/tof/") (tstamps "/02a3014a/")) (tstamps "0820022f")) (comp (ref "J5") - (value "B6B-PH-K") - (footprint "Connector_JST:JST_PH_B6B-PH-K_1x06_P2.00mm_Vertical") + (value "") + (footprint "Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical") (property (name "Sheetname") (value "tof")) (property (name "Sheetfile") (value "edg.parts.Distance_Vl53l0x.Vl53l0xArray")) - (property (name "edg_path") (value "tof.elt[2].conn")) + (property (name "edg_path") (value "tof.elt[2]")) (property (name "edg_short_path") (value "tof.elt[2]")) (property (name "edg_refdes") (value "J5")) - (property (name "edg_part") (value "B6B-PH-K (JST)")) + (property (name "edg_part") (value "")) (sheetpath (names "/tof/") (tstamps "/02a3014a/")) (tstamps "08220230")) (comp (ref "R9") @@ -949,6 +949,9 @@ (node (ref U3) (pin 15)) (node (ref U3) (pin 38)) (node (ref U3) (pin 39)) + (node (ref J3) (pin 2)) + (node (ref J4) (pin 2)) + (node (ref J5) (pin 2)) (node (ref U5) (pin 1)) (node (ref U5) (pin 2)) (node (ref U5) (pin 3)) @@ -982,9 +985,6 @@ (node (ref C5) (pin 2)) (node (ref J2) (pin 4)) (node (ref SW1) (pin 2)) - (node (ref J3) (pin 2)) - (node (ref J4) (pin 2)) - (node (ref J5) (pin 2)) (node (ref J6) (pin 6)) (node (ref C9) (pin 2)) (node (ref C10) (pin 2)) @@ -1010,6 +1010,9 @@ (node (ref TP3) (pin 1)) (node (ref D1) (pin 1)) (node (ref U3) (pin 2)) + (node (ref J3) (pin 1)) + (node (ref J4) (pin 1)) + (node (ref J5) (pin 1)) (node (ref U5) (pin 5)) (node (ref U5) (pin 12)) (node (ref U5) (pin 8)) @@ -1019,9 +1022,6 @@ (node (ref C4) (pin 1)) (node (ref C5) (pin 1)) (node (ref J2) (pin 1)) - (node (ref J3) (pin 1)) - (node (ref J4) (pin 1)) - (node (ref J5) (pin 1)) (node (ref R9) (pin 1)) (node (ref R10) (pin 1)) (node (ref J6) (pin 7)) @@ -1057,220 +1057,225 @@ (node (ref U5) (pin 14)) (node (ref U6) (pin 15)) (node (ref R10) (pin 2)) - (node (ref TP5) (pin 1)) (node (ref J3) (pin 4)) (node (ref J4) (pin 4)) - (node (ref J5) (pin 4))) + (node (ref J5) (pin 4)) + (node (ref TP5) (pin 1))) (net (code 7) (name "lcd.spi.sck") (node (ref U3) (pin 9)) (node (ref J6) (pin 11))) (net (code 8) (name "lcd.spi.mosi") (node (ref U3) (pin 8)) (node (ref J6) (pin 12))) -(net (code 9) (name "lcd.spi.miso")) -(net (code 10) (name "lcd.cs") +(net (code 9) (name "lcd.cs") (node (ref U3) (pin 13)) (node (ref J6) (pin 8))) -(net (code 11) (name "lcd.reset") +(net (code 10) (name "lcd.reset") (node (ref U3) (pin 12)) (node (ref J6) (pin 9))) -(net (code 12) (name "lcd.dc") +(net (code 11) (name "lcd.dc") (node (ref U3) (pin 10)) (node (ref J6) (pin 10))) -(net (code 13) (name "isense.out") +(net (code 12) (name "isense.out") (node (ref U3) (pin 4)) (node (ref R4) (pin 1)) (node (ref U1) (pin 4))) -(net (code 14) (name "expander.io.tof_reset_0") +(net (code 13) (name "expander.io.tof_reset_0") (node (ref U6) (pin 10)) (node (ref J3) (pin 6))) -(net (code 15) (name "expander.io.tof_reset_1") +(net (code 14) (name "expander.io.tof_reset_1") (node (ref U6) (pin 11)) (node (ref J4) (pin 6))) -(net (code 16) (name "expander.io.tof_reset_2") +(net (code 15) (name "expander.io.tof_reset_2") (node (ref U6) (pin 12)) (node (ref J5) (pin 6))) -(net (code 17) (name "expander.io.led_0") +(net (code 16) (name "expander.io.led_0") (node (ref U6) (pin 4)) (node (ref RN1) (pin 8))) -(net (code 18) (name "expander.io.led_1") +(net (code 17) (name "expander.io.led_1") (node (ref U6) (pin 5)) (node (ref RN1) (pin 7))) -(net (code 19) (name "expander.io.led_2") +(net (code 18) (name "expander.io.led_2") (node (ref U6) (pin 6)) (node (ref RN1) (pin 6))) -(net (code 20) (name "expander.io.led_3") +(net (code 19) (name "expander.io.led_3") (node (ref U6) (pin 7)) (node (ref RN1) (pin 5))) -(net (code 21) (name "spk_chain_0") +(net (code 20) (name "spk_chain_0") (node (ref U3) (pin 11)) (node (ref TP6) (pin 1)) (node (ref C19) (pin 2))) -(net (code 22) (name "spk_chain_1.a") +(net (code 21) (name "spk_chain_1.a") (node (ref U7) (pin 8)) (node (ref J7) (pin 1))) -(net (code 23) (name "spk_chain_1.b") +(net (code 22) (name "spk_chain_1.b") (node (ref U7) (pin 5)) (node (ref J7) (pin 2))) -(net (code 24) (name "ws2812bArray.din") +(net (code 23) (name "ws2812bArray.din") (node (ref U3) (pin 23)) (node (ref D6) (pin 4))) -(net (code 25) (name "ws2812bArray.dout") +(net (code 24) (name "ws2812bArray.dout") (node (ref D10) (pin 2)) (node (ref J8) (pin 2))) -(net (code 26) (name "motor_driver1.ain1") +(net (code 25) (name "motor_driver1.ain1") (node (ref U3) (pin 30)) (node (ref U8) (pin 16))) -(net (code 27) (name "motor_driver1.ain2") +(net (code 26) (name "motor_driver1.ain2") (node (ref U3) (pin 31)) (node (ref U8) (pin 15))) -(net (code 28) (name "motor_driver1.bin1") +(net (code 27) (name "motor_driver1.bin1") (node (ref U3) (pin 36)) (node (ref U8) (pin 9))) -(net (code 29) (name "motor_driver1.bin2") +(net (code 28) (name "motor_driver1.bin2") (node (ref U3) (pin 33)) (node (ref U8) (pin 10))) -(net (code 30) (name "m1_a.a") +(net (code 29) (name "m1_a.a") (node (ref U8) (pin 2)) (node (ref J9) (pin 2))) -(net (code 31) (name "m1_a.b") +(net (code 30) (name "m1_a.b") (node (ref U8) (pin 4)) (node (ref J9) (pin 1))) -(net (code 32) (name "m1_b.a") +(net (code 31) (name "m1_b.a") (node (ref U8) (pin 7)) (node (ref J10) (pin 2))) -(net (code 33) (name "m1_b.b") +(net (code 32) (name "m1_b.b") (node (ref U8) (pin 5)) (node (ref J10) (pin 1))) -(net (code 34) (name "motor_driver2.ain1") +(net (code 33) (name "motor_driver2.ain1") (node (ref U3) (pin 26)) (node (ref U9) (pin 16))) -(net (code 35) (name "motor_driver2.ain2") +(net (code 34) (name "motor_driver2.ain2") (node (ref U3) (pin 27)) (node (ref U9) (pin 15))) -(net (code 36) (name "motor_driver2.bin1") +(net (code 35) (name "motor_driver2.bin1") (node (ref U3) (pin 29)) (node (ref U9) (pin 9))) -(net (code 37) (name "motor_driver2.bin2") +(net (code 36) (name "motor_driver2.bin2") (node (ref U3) (pin 28)) (node (ref U9) (pin 10))) -(net (code 38) (name "m2_a.a") +(net (code 37) (name "m2_a.a") (node (ref U9) (pin 2)) (node (ref J11) (pin 2))) -(net (code 39) (name "m2_a.b") +(net (code 38) (name "m2_a.b") (node (ref U9) (pin 4)) (node (ref J11) (pin 1))) -(net (code 40) (name "m2_b.a") +(net (code 39) (name "m2_b.a") (node (ref U9) (pin 7)) (node (ref J12) (pin 2))) -(net (code 41) (name "m2_b.b") +(net (code 40) (name "m2_b.b") (node (ref U9) (pin 5)) (node (ref J12) (pin 1))) -(net (code 42) (name "servo.pwm") +(net (code 41) (name "servo.pwm") (node (ref U3) (pin 37)) (node (ref J13) (pin 1))) -(net (code 43) (name "led_res.a.0") +(net (code 42) (name "led_res.a.0") (node (ref RN1) (pin 1)) (node (ref D2) (pin 1))) -(net (code 44) (name "led_res.a.1") +(net (code 43) (name "led_res.a.1") (node (ref RN1) (pin 2)) (node (ref D3) (pin 1))) -(net (code 45) (name "led_res.a.2") +(net (code 44) (name "led_res.a.2") (node (ref RN1) (pin 3)) (node (ref D4) (pin 1))) -(net (code 46) (name "led_res.a.3") +(net (code 45) (name "led_res.a.3") (node (ref RN1) (pin 4)) (node (ref D5) (pin 1))) -(net (code 47) (name "isense.amp.r2.b") +(net (code 46) (name "isense.amp.r2.b") (node (ref R3) (pin 2)) (node (ref U1) (pin 1)) (node (ref R5) (pin 2))) -(net (code 48) (name "isense.amp.r1.b") +(net (code 47) (name "isense.amp.r1.b") (node (ref R2) (pin 2)) (node (ref U1) (pin 3)) (node (ref R4) (pin 2))) -(net (code 49) (name "reg_3v3.fb.output") +(net (code 48) (name "reg_3v3.fb.output") (node (ref U2) (pin 5)) (node (ref R6) (pin 2)) (node (ref R7) (pin 1))) -(net (code 50) (name "reg_3v3.power_path.switch") +(net (code 49) (name "reg_3v3.power_path.switch") (node (ref U2) (pin 3)) (node (ref L1) (pin 1))) -(net (code 51) (name "mcu.program_uart_node.a_tx") +(net (code 50) (name "mcu.program_uart_node.a_tx") (node (ref U3) (pin 35)) (node (ref J2) (pin 2))) -(net (code 52) (name "mcu.program_uart_node.b_tx") +(net (code 51) (name "mcu.program_uart_node.b_tx") (node (ref U3) (pin 34)) (node (ref J2) (pin 3))) -(net (code 53) (name "mcu.program_en_node") +(net (code 52) (name "mcu.program_en_node") (node (ref U3) (pin 3)) (node (ref R8) (pin 2)) (node (ref C6) (pin 1))) -(net (code 54) (name "mcu.program_boot_node") +(net (code 53) (name "mcu.program_boot_node") (node (ref U3) (pin 25)) (node (ref SW1) (pin 1))) -(net (code 55) (name "mcu.ic.io2") +(net (code 54) (name "mcu.ic.io2") (node (ref U3) (pin 24))) -(net (code 56) (name "lcd.c1_cap.pos") +(net (code 55) (name "tof.elt[0].ic.gpio1") + (node (ref J3) (pin 5))) +(net (code 56) (name "tof.elt[1].ic.gpio1") + (node (ref J4) (pin 5))) +(net (code 57) (name "tof.elt[2].ic.gpio1") + (node (ref J5) (pin 5))) +(net (code 58) (name "lcd.c1_cap.pos") (node (ref C7) (pin 1)) (node (ref J6) (pin 3))) -(net (code 57) (name "lcd.c1_cap.neg") +(net (code 59) (name "lcd.c1_cap.neg") (node (ref C7) (pin 2)) (node (ref J6) (pin 4))) -(net (code 58) (name "lcd.c2_cap.pos") +(net (code 60) (name "lcd.c2_cap.pos") (node (ref C8) (pin 1)) (node (ref J6) (pin 1))) -(net (code 59) (name "lcd.c2_cap.neg") +(net (code 61) (name "lcd.c2_cap.neg") (node (ref C8) (pin 2)) (node (ref J6) (pin 2))) -(net (code 60) (name "lcd.iref_res.a") +(net (code 62) (name "lcd.iref_res.a") (node (ref R11) (pin 1)) (node (ref J6) (pin 13))) -(net (code 61) (name "lcd.device.vcomh") +(net (code 63) (name "lcd.device.vcomh") (node (ref J6) (pin 14)) (node (ref C9) (pin 1))) -(net (code 62) (name "lcd.device.vcc") +(net (code 64) (name "lcd.device.vcc") (node (ref J6) (pin 15)) (node (ref C12) (pin 1)) (node (ref C13) (pin 1))) -(net (code 63) (name "imu.int1") +(net (code 65) (name "imu.int1") (node (ref U5) (pin 4))) -(net (code 64) (name "imu.int2") +(net (code 66) (name "imu.int2") (node (ref U5) (pin 9))) -(net (code 65) (name "spk_drv.inp_cap.pos") +(net (code 67) (name "spk_drv.inp_cap.pos") (node (ref C19) (pin 1)) (node (ref R12) (pin 1))) -(net (code 66) (name "spk_drv.inp_res.b") +(net (code 68) (name "spk_drv.inp_res.b") (node (ref R12) (pin 2)) (node (ref U7) (pin 4))) -(net (code 67) (name "spk_drv.inn_cap.pos") +(net (code 69) (name "spk_drv.inn_cap.pos") (node (ref C20) (pin 1)) (node (ref R13) (pin 1))) -(net (code 68) (name "spk_drv.inn_res.b") +(net (code 70) (name "spk_drv.inn_res.b") (node (ref R13) (pin 2)) (node (ref U7) (pin 3))) -(net (code 69) (name "ws2812bArray.led[0].dout") +(net (code 71) (name "ws2812bArray.led[0].dout") (node (ref D6) (pin 2)) (node (ref D7) (pin 4))) -(net (code 70) (name "ws2812bArray.led[1].dout") +(net (code 72) (name "ws2812bArray.led[1].dout") (node (ref D7) (pin 2)) (node (ref D8) (pin 4))) -(net (code 71) (name "ws2812bArray.led[2].dout") +(net (code 73) (name "ws2812bArray.led[2].dout") (node (ref D8) (pin 2)) (node (ref D9) (pin 4))) -(net (code 72) (name "ws2812bArray.led[3].dout") +(net (code 74) (name "ws2812bArray.led[3].dout") (node (ref D9) (pin 2)) (node (ref D10) (pin 4))) -(net (code 73) (name "motor_driver1.ic.vint") +(net (code 75) (name "motor_driver1.ic.vint") (node (ref U8) (pin 14)) (node (ref C22) (pin 1))) -(net (code 74) (name "motor_driver1.vcp_cap.pos") +(net (code 76) (name "motor_driver1.vcp_cap.pos") (node (ref C23) (pin 1)) (node (ref U8) (pin 11))) -(net (code 75) (name "motor_driver2.ic.vint") +(net (code 77) (name "motor_driver2.ic.vint") (node (ref U9) (pin 14)) (node (ref C25) (pin 1))) -(net (code 76) (name "motor_driver2.vcp_cap.pos") +(net (code 78) (name "motor_driver2.vcp_cap.pos") (node (ref C26) (pin 1)) (node (ref U9) (pin 11)))) ) \ No newline at end of file diff --git a/examples/UsbSourceMeasure/UsbSourceMeasure.net b/examples/UsbSourceMeasure/UsbSourceMeasure.net index 399f87798..c7a292f56 100644 --- a/examples/UsbSourceMeasure/UsbSourceMeasure.net +++ b/examples/UsbSourceMeasure/UsbSourceMeasure.net @@ -3553,45 +3553,44 @@ (node (ref fan_drv.drv) (pin 1))) (net (code 144) (name "dac.out3") (node (ref dac.ic) (pin 9))) -(net (code 145) (name "dac.ldac")) -(net (code 146) (name "dac.rdy") +(net (code 145) (name "dac.rdy") (node (ref dac.ic) (pin 5))) -(net (code 147) (name "tp_cv.res.b") +(net (code 146) (name "tp_cv.res.b") (node (ref tp_cv.res) (pin 2)) (node (ref tp_cv.conn) (pin 1))) -(net (code 148) (name "tp_cisrc.res.b") +(net (code 147) (name "tp_cisrc.res.b") (node (ref tp_cisrc.res) (pin 2)) (node (ref tp_cisrc.conn) (pin 1))) -(net (code 149) (name "tp_cisnk.res.b") +(net (code 148) (name "tp_cisnk.res.b") (node (ref tp_cisnk.res) (pin 2)) (node (ref tp_cisnk.conn) (pin 1))) -(net (code 150) (name "adc.vins.3") +(net (code 149) (name "adc.vins.3") (node (ref adc.ic) (pin 8))) -(net (code 151) (name "adc.vins.4") +(net (code 150) (name "adc.vins.4") (node (ref adc.ic) (pin 9))) -(net (code 152) (name "adc.vins.5") +(net (code 151) (name "adc.vins.5") (node (ref adc.ic) (pin 10))) -(net (code 153) (name "adc.vins.6") +(net (code 152) (name "adc.vins.6") (node (ref adc.ic) (pin 11))) -(net (code 154) (name "adc.vins.7") +(net (code 153) (name "adc.vins.7") (node (ref adc.ic) (pin 12))) -(net (code 155) (name "adc.ic.avdd") +(net (code 154) (name "adc.ic.avdd") (node (ref adc.ic) (pin 1)) (node (ref adc.avdd_res) (pin 2)) (node (ref adc.avdd_cap_0) (pin 1)) (node (ref adc.avdd_cap_1) (pin 1))) -(net (code 156) (name "adc.ic.dvdd") +(net (code 155) (name "adc.ic.dvdd") (node (ref adc.ic) (pin 20)) (node (ref adc.dvdd_res) (pin 2)) (node (ref adc.dvdd_cap_0) (pin 1)) (node (ref adc.dvdd_cap_1) (pin 1))) -(net (code 157) (name "tp_vcen.res.b") +(net (code 156) (name "tp_vcen.res.b") (node (ref tp_vcen.res) (pin 2)) (node (ref tp_vcen.conn) (pin 1))) -(net (code 158) (name "tp_mi.res.b") +(net (code 157) (name "tp_mi.res.b") (node (ref tp_mi.res) (pin 2)) (node (ref tp_mi.conn) (pin 1))) -(net (code 159) (name "tp_mv.res.b") +(net (code 158) (name "tp_mv.res.b") (node (ref tp_mv.res) (pin 2)) (node (ref tp_mv.conn) (pin 1)))) ) \ No newline at end of file diff --git a/examples/UsbSourceMeasure/UsbSourceMeasure.ref.net b/examples/UsbSourceMeasure/UsbSourceMeasure.ref.net index 3c2674036..ea32d8fd9 100644 --- a/examples/UsbSourceMeasure/UsbSourceMeasure.ref.net +++ b/examples/UsbSourceMeasure/UsbSourceMeasure.ref.net @@ -3553,45 +3553,44 @@ (node (ref Q8) (pin 1))) (net (code 144) (name "dac.out3") (node (ref U26) (pin 9))) -(net (code 145) (name "dac.ldac")) -(net (code 146) (name "dac.rdy") +(net (code 145) (name "dac.rdy") (node (ref U26) (pin 5))) -(net (code 147) (name "tp_cv.res.b") +(net (code 146) (name "tp_cv.res.b") (node (ref R68) (pin 2)) (node (ref J7) (pin 1))) -(net (code 148) (name "tp_cisrc.res.b") +(net (code 147) (name "tp_cisrc.res.b") (node (ref R69) (pin 2)) (node (ref J8) (pin 1))) -(net (code 149) (name "tp_cisnk.res.b") +(net (code 148) (name "tp_cisnk.res.b") (node (ref R70) (pin 2)) (node (ref J9) (pin 1))) -(net (code 150) (name "adc.vins.3") +(net (code 149) (name "adc.vins.3") (node (ref U27) (pin 8))) -(net (code 151) (name "adc.vins.4") +(net (code 150) (name "adc.vins.4") (node (ref U27) (pin 9))) -(net (code 152) (name "adc.vins.5") +(net (code 151) (name "adc.vins.5") (node (ref U27) (pin 10))) -(net (code 153) (name "adc.vins.6") +(net (code 152) (name "adc.vins.6") (node (ref U27) (pin 11))) -(net (code 154) (name "adc.vins.7") +(net (code 153) (name "adc.vins.7") (node (ref U27) (pin 12))) -(net (code 155) (name "adc.ic.avdd") +(net (code 154) (name "adc.ic.avdd") (node (ref U27) (pin 1)) (node (ref R71) (pin 2)) (node (ref C64) (pin 1)) (node (ref C65) (pin 1))) -(net (code 156) (name "adc.ic.dvdd") +(net (code 155) (name "adc.ic.dvdd") (node (ref U27) (pin 20)) (node (ref R72) (pin 2)) (node (ref C66) (pin 1)) (node (ref C67) (pin 1))) -(net (code 157) (name "tp_vcen.res.b") +(net (code 156) (name "tp_vcen.res.b") (node (ref R73) (pin 2)) (node (ref J10) (pin 1))) -(net (code 158) (name "tp_mi.res.b") +(net (code 157) (name "tp_mi.res.b") (node (ref R75) (pin 2)) (node (ref J11) (pin 1))) -(net (code 159) (name "tp_mv.res.b") +(net (code 158) (name "tp_mv.res.b") (node (ref R77) (pin 2)) (node (ref J12) (pin 1)))) ) \ No newline at end of file diff --git a/examples/edg.pretty/DIP-16_W12.70mm.kicad_mod b/examples/edg.pretty/DIP-16_W12.70mm.kicad_mod new file mode 100644 index 000000000..cd0e6d843 --- /dev/null +++ b/examples/edg.pretty/DIP-16_W12.70mm.kicad_mod @@ -0,0 +1,371 @@ +(footprint "DIP-16_W12.70mm" + (version 20240108) + (generator "pcbnew") + (generator_version "8.0") + (layer "F.Cu") + (descr "16-lead though-hole mounted DIP package, row spacing 10.16 mm (400 mils)") + (tags "THT DIP DIL PDIP 2.54mm 10.16mm 400mil") + (property "Reference" "REF**" + (at 7.62 -2.33 0) + (layer "F.SilkS") + (uuid "9e67d79b-c2c9-4c7c-8948-1cdc7a82fc59") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "DIP-16_W12.70mm" + (at 7.62 20.11 0) + (layer "F.Fab") + (uuid "d22ffc6b-4d35-4379-85ae-7c35cfd9a50f") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "9dab7b3d-c4a5-4128-87e9-0fdf69b8a946") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "1ba59e17-9fa2-48d4-916d-bee9e60c52f1") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "d45715e1-65b0-49f2-8098-6287c7835a51") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (attr through_hole) + (fp_line + (start 1.845 -1.33) + (end 1.845 19.11) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "2d3d1a2e-b6bb-437b-b772-4011ab1209e5") + ) + (fp_line + (start 1.845 19.11) + (end 10.855 19.11) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "6e181583-ae91-435d-b860-cee3dc1586b4") + ) + (fp_line + (start 5.35 -1.33) + (end 1.845 -1.33) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "5bb5c2d7-1164-4b9c-b2fa-c91e81cd40f2") + ) + (fp_line + (start 10.855 -1.33) + (end 7.35 -1.33) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "3d497e45-b5b1-4236-b139-908baa758b48") + ) + (fp_line + (start 10.855 19.11) + (end 10.855 -1.33) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "5945f090-0226-4f62-91a9-3fa50f5d2cc7") + ) + (fp_arc + (start 7.35 -1.33) + (mid 6.35 -0.33) + (end 5.35 -1.33) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "c0ac4d0f-948d-48f7-9ade-ec93e7df54b2") + ) + (fp_line + (start -1.05 -1.55) + (end -1.05 19.3) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "ce7f2479-5613-4b39-8a00-3e4bcb91d378") + ) + (fp_line + (start -1.05 19.3) + (end 13.79 19.3) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "a7e8a149-4739-42cc-b653-41defb1b8044") + ) + (fp_line + (start 13.79 -1.55) + (end -1.05 -1.55) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "44b5c97b-d9b8-469e-bad1-6cb0288656fb") + ) + (fp_line + (start 13.79 19.3) + (end 13.79 -1.55) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "778430d8-0f21-4dd2-9f4d-e9eb4bdf78a5") + ) + (fp_line + (start 1.905 -0.27) + (end 2.905 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "4e801b85-9ab5-432e-8deb-4432b3143d12") + ) + (fp_line + (start 1.905 19.05) + (end 1.905 -0.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "f73fb902-9551-4c65-b07b-e52f92d6ba5e") + ) + (fp_line + (start 2.905 -1.27) + (end 10.795 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "5fb7a8e4-e48b-438b-bce5-04a97deb7de9") + ) + (fp_line + (start 10.795 -1.27) + (end 10.795 19.05) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "44e43fbe-5009-4212-8045-04cab3a86560") + ) + (fp_line + (start 10.795 19.05) + (end 1.905 19.05) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "efa397d1-f745-4bcc-8006-e5ba89b48d05") + ) + (fp_text user "${REFERENCE}" + (at 6.35 8.89 0) + (layer "F.Fab") + (uuid "65f0b295-67c6-4023-a7dc-732a8b3862ab") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (pad "1" thru_hole rect + (at 0 0) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (uuid "f7addcdc-a005-456e-8f8b-1ff318182698") + ) + (pad "2" thru_hole oval + (at 0 2.54) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (uuid "6b7c4e1c-9b1d-4efe-bd54-1c308ccb9de1") + ) + (pad "3" thru_hole oval + (at 0 5.08) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (uuid "a31d7d40-5a9e-461d-bfc9-95ccfea10a53") + ) + (pad "4" thru_hole oval + (at 0 7.62) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (uuid "b5a8e72f-d1d0-44b5-9f22-dd6787ad2da0") + ) + (pad "5" thru_hole oval + (at 0 10.16) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (uuid "a12d0de4-fd60-4280-a479-6e3cd4d3502d") + ) + (pad "6" thru_hole oval + (at 0 12.7) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (uuid "5fbbfd53-623d-4d54-896e-b07866256abd") + ) + (pad "7" thru_hole oval + (at 0 15.24) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (uuid "a7534728-bd45-42ef-9a65-5c97edf59377") + ) + (pad "8" thru_hole oval + (at 0 17.78) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (uuid "287aaab7-089a-4793-a27a-6713efa41709") + ) + (pad "9" thru_hole oval + (at 12.7 17.78) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (uuid "cb04b367-9f8b-4241-a810-3306ef3e0a4d") + ) + (pad "10" thru_hole oval + (at 12.7 15.24) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (uuid "d406801e-3648-46ca-8d99-c199baeb6fef") + ) + (pad "11" thru_hole oval + (at 12.7 12.7) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (uuid "6ac5c9e8-b406-4a78-9e62-601102301901") + ) + (pad "12" thru_hole oval + (at 12.7 10.16) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (uuid "7fb03a64-f41e-4310-ab4f-c7e5eb084766") + ) + (pad "13" thru_hole oval + (at 12.7 7.62) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (uuid "38dab59f-b53f-46f4-8850-c5d909f329f4") + ) + (pad "14" thru_hole oval + (at 12.7 5.08) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (uuid "4c60f333-0e6a-4194-9fdf-8fbc9cf10ede") + ) + (pad "15" thru_hole oval + (at 12.7 2.54) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (uuid "a9dcd5d6-a6cd-4828-b4bb-91ef17b35557") + ) + (pad "16" thru_hole oval + (at 12.7 0) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (uuid "9ca4fb27-cf7e-4f96-8a42-5f4085762e85") + ) + (model "${KICAD8_3DMODEL_DIR}/Package_DIP.3dshapes/DIP-16_W10.16mm.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) +) diff --git a/examples/test_iot_knob.py b/examples/test_iot_knob.py index d237ef528..ecf9e31f7 100644 --- a/examples/test_iot_knob.py +++ b/examples/test_iot_knob.py @@ -66,7 +66,7 @@ def contents(self) -> None: self.als = imp.Block(Bh1750()) self.connect(self.i2c, self.als.i2c) - self.dist = imp.Block(Vl53l0xBase()) + self.dist = imp.Block(Vl53l0x()) self.connect(self.i2c, self.dist.i2c) self.env = imp.Block(Shtc3()) diff --git a/examples/test_pcbbot.py b/examples/test_pcbbot.py index c85548217..b72a39c4e 100644 --- a/examples/test_pcbbot.py +++ b/examples/test_pcbbot.py @@ -212,7 +212,7 @@ def refinements(self) -> Refinements: class_refinements=[ (PassiveConnector, JstPhKVertical), # default connector series unless otherwise specified (TestPoint, CompactKeystone5015), - (Vl53l0xBase, Vl53l0xConnector), + (Vl53l0x, Vl53l0xConnector), (Speaker, ConnectorSpeaker), (Neopixel, Ws2812b), ], diff --git a/examples/test_robotdriver.py b/examples/test_robotdriver.py index 8ebdd09fe..0b2ba4fed 100644 --- a/examples/test_robotdriver.py +++ b/examples/test_robotdriver.py @@ -234,7 +234,7 @@ def refinements(self) -> Refinements: ], class_refinements=[ (PassiveConnector, JstPhKVertical), # default connector series unless otherwise specified - (Vl53l0xBase, Vl53l0xConnector), + (Vl53l0x, Vl53l0xConnector), (TestPoint, TeRc), (Speaker, ConnectorSpeaker), (Neopixel, Ws2812b),