diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..ce14e4b --- /dev/null +++ b/flake.nix @@ -0,0 +1,20 @@ +{ + description = "KiCad schematic generator for TPS61088 boost converter"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; + }; + + outputs = { self, nixpkgs }: + let + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; + in + { + devShells.${system}.default = pkgs.mkShell { + buildInputs = [ + pkgs.python313 + ]; + }; + }; +} diff --git a/gen_boost_schematic.py b/gen_boost_schematic.py new file mode 100644 index 0000000..536021a --- /dev/null +++ b/gen_boost_schematic.py @@ -0,0 +1,890 @@ +#!/usr/bin/env python3 +""" +Generate a KiCad 9 schematic for a TPS61088 5V-to-12V boost converter. + +Reference design for driving a stepper motor (via A4988) at 12V/2A +from a 5V Raspberry Pi power bus. + +All coordinates are multiples of 1.27mm to stay on KiCad's grid. + +Output: tps61088_boost.kicad_sch +""" + +import uuid + + +def uid(): + return str(uuid.uuid4()) + + +# Grid helper: snap to 1.27mm grid +def g(n): + """Round to nearest 1.27mm grid point.""" + return round(round(n / 1.27) * 1.27, 2) + + +# ── Symbol library definitions ────────────────────────────────────── + +LIB_TPS61088 = """\ + (symbol "custom:TPS61088" + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "U" + (at 0 16.51 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "TPS61088" + (at 0 13.97 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Package_DFN_QFN:QFN-20-1EP_3.5x3.5mm_P0.5mm_EP2.1x2.1mm" + (at 0 -20.32 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "https://www.ti.com/lit/ds/symlink/tps61088.pdf" + (at 0 -22.86 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "10A Fully-Integrated Synchronous Boost Converter" + (at 0 -25.4 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (symbol "TPS61088_0_1" + (rectangle + (start -10.16 12.7) + (end 10.16 -12.7) + (stroke (width 0.254) (type default)) + (fill (type background)) + ) + ) + (symbol "TPS61088_1_1" + (pin power_in line + (at -12.7 10.16 0) (length 2.54) + (name "VIN" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin input line + (at -12.7 5.08 0) (length 2.54) + (name "EN" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin passive line + (at -12.7 0 0) (length 2.54) + (name "SS/TR" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin passive line + (at -12.7 -5.08 0) (length 2.54) + (name "COMP" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin input line + (at -12.7 -10.16 0) (length 2.54) + (name "FB" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + (pin passive line + (at 12.7 10.16 180) (length 2.54) + (name "SW" (effects (font (size 1.27 1.27)))) + (number "12" (effects (font (size 1.27 1.27)))) + ) + (pin passive line + (at 12.7 5.08 180) (length 2.54) + (name "BST" (effects (font (size 1.27 1.27)))) + (number "11" (effects (font (size 1.27 1.27)))) + ) + (pin power_out line + (at 12.7 0 180) (length 2.54) + (name "VOUT" (effects (font (size 1.27 1.27)))) + (number "9" (effects (font (size 1.27 1.27)))) + ) + (pin open_collector line + (at 12.7 -5.08 180) (length 2.54) + (name "PGOOD" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line + (at 0 -15.24 90) (length 2.54) + (name "PGND" (effects (font (size 1.27 1.27)))) + (number "15" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line + (at -5.08 -15.24 90) (length 2.54) + (name "AGND" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + ) + )""" + +LIB_CAPACITOR = """\ + (symbol "Device:C" + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "C" + (at 1.27 0 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "C" + (at 1.27 -2.54 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "Unpolarized capacitor" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (symbol "C_0_1" + (polyline + (pts (xy -2.032 -0.762) (xy 2.032 -0.762)) + (stroke (width 0.508) (type default)) + (fill (type none)) + ) + (polyline + (pts (xy -2.032 0.762) (xy 2.032 0.762)) + (stroke (width 0.508) (type default)) + (fill (type none)) + ) + ) + (symbol "C_1_1" + (pin passive line + (at 0 2.54 270) (length 2.54) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line + (at 0 -2.54 90) (length 2.54) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + )""" + +LIB_RESISTOR = """\ + (symbol "Device:R" + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "R" + (at 2.032 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "R" + (at 0 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "Resistor" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (symbol "R_0_1" + (rectangle + (start -1.016 -2.54) + (end 1.016 2.54) + (stroke (width 0.254) (type default)) + (fill (type none)) + ) + ) + (symbol "R_1_1" + (pin passive line + (at 0 3.81 270) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line + (at 0 -3.81 90) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + )""" + +LIB_INDUCTOR = """\ + (symbol "Device:L" + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "L" + (at -1.016 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "L" + (at 1.016 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "Inductor" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (symbol "L_0_1" + (arc + (start 0 -2.54) (mid 0.6323 -1.905) (end 0 -1.27) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (arc + (start 0 -1.27) (mid 0.6323 -0.635) (end 0 0) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (arc + (start 0 0) (mid 0.6323 0.635) (end 0 1.27) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (arc + (start 0 1.27) (mid 0.6323 1.905) (end 0 2.54) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "L_1_1" + (pin passive line + (at 0 3.81 270) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line + (at 0 -3.81 90) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + )""" + + +def lib_power(name, shape_text): + return f"""\ + (symbol "power:{name}" + (power) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -3.81 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Value" "{name}" + (at 0 3.81 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "Power symbol creates a global label with name \\"{name}\\"" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) +{shape_text} + )""" + + +POWER_UP_SHAPE = """\ + (symbol "{name}_0_1" + (polyline + (pts (xy -0.762 1.27) (xy 0 2.54)) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts (xy 0 0) (xy 0 2.54)) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts (xy 0 2.54) (xy 0.762 1.27)) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "{name}_1_1" + (pin power_in line + (at 0 0 90) (length 0) + (name "{name}" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + )""" + +GND_SHAPE = """\ + (symbol "GND_0_1" + (polyline + (pts (xy 0 0) (xy 0 -1.27) (xy 1.27 -1.27) (xy 0 -2.54) (xy -1.27 -1.27) (xy 0 -1.27)) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "GND_1_1" + (pin power_in line + (at 0 0 270) (length 0) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + )""" + +LIB_PLUS5V = lib_power("+5V", POWER_UP_SHAPE.format(name="+5V")) +LIB_PLUS12V = lib_power("+12V", POWER_UP_SHAPE.format(name="+12V")) +LIB_GND = lib_power("GND", GND_SHAPE) + +LIB_PWR_FLAG = """\ + (symbol "power:PWR_FLAG" + (power) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#FLG" + (at 0 1.905 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Value" "PWR_FLAG" + (at 0 3.81 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "Special symbol for telling ERC where power comes from" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "ki_keywords" "power-flag" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (symbol "PWR_FLAG_0_0" + (pin power_out line + (at 0 0 90) (length 0) + (name "pwr" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + ) + (symbol "PWR_FLAG_0_1" + (polyline + (pts (xy 0 0) (xy 0 1.27) (xy -1.016 1.905) (xy 0 2.54) (xy 1.016 1.905) (xy 0 1.27)) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + )""" + + +# ── Schematic element builders ────────────────────────────────────── + +class Schematic: + def __init__(self): + self.root_uuid = uid() + self.symbols = [] + self.wires = [] + self.junctions = [] + self.labels = [] + self.notes = [] + self.no_connects = [] + self._pwr_idx = 0 + self._flg_idx = 0 + + def _next_pwr(self): + self._pwr_idx += 1 + return f"#PWR{self._pwr_idx:02d}" + + def place(self, lib_id, ref, value, x, y, rot=0, pins=None): + """Place a component. pins is a dict of pin_number -> uuid.""" + u = uid() + if pins is None: + pins = {} + pin_str = "" + for pnum in sorted(pins.keys(), key=lambda k: int(k) if k.isdigit() else k): + pin_str += f' (pin "{pnum}"\n (uuid "{pins[pnum]}")\n )\n' + + self.symbols.append(f"""\ + (symbol + (lib_id "{lib_id}") + (at {x} {y} {rot}) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "{u}") + (property "Reference" "{ref}" + (at {x + 2.54} {y - 2.54} 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "{value}" + (at {x + 2.54} {y + 2.54} 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" + (at {x} {y} 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at {x} {y} 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at {x} {y} 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) +{pin_str}\ + (instances + (project "" + (path "/{self.root_uuid}" + (reference "{ref}") + (unit 1) + ) + ) + ) + )""") + + def pwr(self, lib_id, value, x, y): + """Place a power symbol.""" + ref = self._next_pwr() + u = uid() + self.symbols.append(f"""\ + (symbol + (lib_id "{lib_id}") + (at {x} {y} 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "{u}") + (property "Reference" "{ref}" + (at {x} {y - 2.54} 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Value" "{value}" + (at {x} {y + 3.81} 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" + (at {x} {y} 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at {x} {y} 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at {x} {y} 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "{uid()}") + ) + (instances + (project "" + (path "/{self.root_uuid}" + (reference "{ref}") + (unit 1) + ) + ) + ) + )""") + + def wire(self, x1, y1, x2, y2): + self.wires.append(f"""\ + (wire + (pts (xy {x1} {y1}) (xy {x2} {y2})) + (stroke (width 0) (type default)) + (uuid "{uid()}") + )""") + + def junc(self, x, y): + self.junctions.append(f"""\ + (junction + (at {x} {y}) + (diameter 0) + (color 0 0 0 0) + (uuid "{uid()}") + )""") + + def label(self, x, y, name, rot=0): + self.labels.append(f"""\ + (label "{name}" + (at {x} {y} {rot}) + (effects (font (size 1.27 1.27))) + (uuid "{uid()}") + )""") + + def note(self, x, y, text): + self.notes.append(f"""\ + (text "{text}" + (exclude_from_sim no) + (at {x} {y} 0) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid "{uid()}") + )""") + + def pwr_flag(self, x, y): + """Place a PWR_FLAG to tell ERC this net is externally powered.""" + self._flg_idx += 1 + ref = f"#FLG{self._flg_idx:02d}" + u = uid() + self.symbols.append(f"""\ + (symbol + (lib_id "power:PWR_FLAG") + (at {x} {y} 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "{u}") + (property "Reference" "{ref}" + (at {x} {y - 2.54} 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Value" "PWR_FLAG" + (at {x} {y + 3.81} 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" + (at {x} {y} 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at {x} {y} 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at {x} {y} 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "{uid()}") + ) + (instances + (project "" + (path "/{self.root_uuid}" + (reference "{ref}") + (unit 1) + ) + ) + ) + )""") + + def no_connect(self, x, y): + self.no_connects.append(f"""\ + (no_connect + (at {x} {y}) + (uuid "{uid()}") + )""") + + def render(self): + sections = [] + sections.append(f"""\ +(kicad_sch + (version 20250114) + (generator "python_gen") + (generator_version "9.0") + (uuid "{self.root_uuid}") + (paper "A3") + (lib_symbols +{LIB_TPS61088} +{LIB_CAPACITOR} +{LIB_RESISTOR} +{LIB_INDUCTOR} +{LIB_PLUS5V} +{LIB_PLUS12V} +{LIB_GND} +{LIB_PWR_FLAG} + )""") + for j in self.junctions: + sections.append(j) + for nc in self.no_connects: + sections.append(nc) + for w in self.wires: + sections.append(w) + for lb in self.labels: + sections.append(lb) + for n in self.notes: + sections.append(n) + for s in self.symbols: + sections.append(s) + sections.append("""\ + (sheet_instances + (path "/" + (page "1") + ) + ) + (embedded_fonts no) +)""") + return "\n".join(sections) + + +def generate(): + s = Schematic() + + # All coordinates in mm, on 1.27mm grid + # IC center + cx, cy = 101.6, 76.2 + + # ── TPS61088 pin absolute positions ── + # Left side (input is at IC x - 12.7) + pin_vin = (cx - 12.7, cy - 10.16) # VIN + pin_en = (cx - 12.7, cy - 5.08) # EN + pin_ss = (cx - 12.7, cy) # SS/TR + pin_comp = (cx - 12.7, cy + 5.08) # COMP + pin_fb = (cx - 12.7, cy + 10.16) # FB + + # Right side + pin_sw = (cx + 12.7, cy - 10.16) # SW + pin_bst = (cx + 12.7, cy - 5.08) # BST + pin_vout = (cx + 12.7, cy) # VOUT + pin_pg = (cx + 12.7, cy + 5.08) # PGOOD + + # Bottom + pin_pgnd = (cx, cy + 15.24) # PGND + pin_agnd = (cx - 5.08, cy + 15.24) # AGND + + # Place TPS61088 + ic_pins = {} + for pn in ["1", "3", "4", "5", "6", "7", "8", "9", "11", "12", "15"]: + ic_pins[pn] = uid() + s.place("custom:TPS61088", "U1", "TPS61088", cx, cy, pins=ic_pins) + + # ── VIN rail (horizontal bus at pin_vin y level) ── + vin_rail_y = pin_vin[1] # 66.04 + vin_bus_x = cx - 20.32 # 81.28 - left extent of VIN bus + + # Wire from VIN pin leftward + s.wire(pin_vin[0], pin_vin[1], vin_bus_x, vin_rail_y) + + # EN tied to VIN (always on) + s.wire(pin_en[0], pin_en[1], vin_bus_x, pin_en[1]) + s.wire(vin_bus_x, pin_en[1], vin_bus_x, vin_rail_y) + s.junc(vin_bus_x, vin_rail_y) + + # +5V power symbol above VIN bus + pwr5v_x = vin_bus_x + pwr5v_y = vin_rail_y - 5.08 + s.pwr("power:+5V", "+5V", pwr5v_x, pwr5v_y) + s.wire(pwr5v_x, pwr5v_y, pwr5v_x, vin_rail_y) + + # ── Input caps C1, C2 (22µF) ── + # Capacitor pin 1 (top) at y = center - 2.54, pin 2 (bot) at y = center + 2.54 + c1_x = vin_bus_x - 7.62 + c1_y = vin_rail_y + 7.62 # center of cap + s.place("Device:C", "C1", "22uF", c1_x, c1_y, + pins={"1": uid(), "2": uid()}) + # Top of C1 to VIN rail + s.wire(c1_x, c1_y - 2.54, c1_x, vin_rail_y) + s.wire(c1_x, vin_rail_y, vin_bus_x, vin_rail_y) + s.junc(vin_bus_x, vin_rail_y) + # Bottom of C1 to GND + s.pwr("power:GND", "GND", c1_x, c1_y + 5.08) + s.wire(c1_x, c1_y + 2.54, c1_x, c1_y + 5.08) + + c2_x = vin_bus_x - 15.24 + c2_y = c1_y + s.place("Device:C", "C2", "22uF", c2_x, c2_y, + pins={"1": uid(), "2": uid()}) + s.wire(c2_x, c2_y - 2.54, c2_x, vin_rail_y) + s.wire(c2_x, vin_rail_y, c1_x, vin_rail_y) + s.junc(c1_x, vin_rail_y) + s.pwr("power:GND", "GND", c2_x, c2_y + 5.08) + s.wire(c2_x, c2_y + 2.54, c2_x, c2_y + 5.08) + + # ── SS/TR cap C3 (22nF) ── + c3_x = vin_bus_x - 7.62 + c3_y = pin_ss[1] + 7.62 + s.place("Device:C", "C3", "22nF", c3_x, c3_y, + pins={"1": uid(), "2": uid()}) + s.wire(pin_ss[0], pin_ss[1], c3_x, pin_ss[1]) + s.wire(c3_x, c3_y - 2.54, c3_x, pin_ss[1]) + s.pwr("power:GND", "GND", c3_x, c3_y + 5.08) + s.wire(c3_x, c3_y + 2.54, c3_x, c3_y + 5.08) + + # ── COMP network: R1 (30.1k) + C4 (47pF) in series ── + r1_x = vin_bus_x - 7.62 + # R pin 1 (top) at y = center - 3.81, pin 2 (bot) at y = center + 3.81 + r1_y = pin_comp[1] + 5.08 + s.place("Device:R", "R1", "30.1k", r1_x, r1_y, + pins={"1": uid(), "2": uid()}) + s.wire(pin_comp[0], pin_comp[1], r1_x, pin_comp[1]) + s.wire(r1_x, r1_y - 3.81, r1_x, pin_comp[1]) + + c4_x = r1_x + c4_y = r1_y + 8.89 + s.place("Device:C", "C4", "47pF", c4_x, c4_y, + pins={"1": uid(), "2": uid()}) + s.wire(r1_x, r1_y + 3.81, c4_x, c4_y - 2.54) + s.pwr("power:GND", "GND", c4_x, c4_y + 5.08) + s.wire(c4_x, c4_y + 2.54, c4_x, c4_y + 5.08) + + # ── GND for IC ── + gnd_y = pin_pgnd[1] + 5.08 + s.pwr("power:GND", "GND", pin_pgnd[0], gnd_y) + s.wire(pin_pgnd[0], pin_pgnd[1], pin_pgnd[0], gnd_y) + # AGND connects to same GND node + s.wire(pin_agnd[0], pin_agnd[1], pin_agnd[0], gnd_y) + s.wire(pin_agnd[0], gnd_y, pin_pgnd[0], gnd_y) + s.junc(pin_pgnd[0], gnd_y) + + # ── Inductor L1 (2.2µH): SW to VOUT rail ── + # Rotated 90°: pin 1 at x = center - 3.81, pin 2 at x = center + 3.81 + l1_x = cx + 22.86 + l1_y = pin_sw[1] + s.place("Device:L", "L1", "2.2uH", l1_x, l1_y, rot=90, + pins={"1": uid(), "2": uid()}) + # SW net to L1 pin 1 (route from junction point, not directly from IC pin) + sw_junc_x = pin_sw[0] + 2.54 # defined again here for clarity + s.wire(sw_junc_x, pin_sw[1], l1_x - 3.81, l1_y) + + # VOUT rail node (right of inductor) + vout_rail_x = l1_x + 10.16 + vout_rail_y = l1_y + # L1 pin 2 to VOUT rail + s.wire(l1_x + 3.81, l1_y, vout_rail_x, vout_rail_y) + + # VOUT pin connects to VOUT rail + s.wire(pin_vout[0], pin_vout[1], vout_rail_x, pin_vout[1]) + s.wire(vout_rail_x, pin_vout[1], vout_rail_x, vout_rail_y) + s.junc(vout_rail_x, vout_rail_y) + + # ── Bootstrap cap C5 (100nF): BST to SW ── + c5_x = cx + 17.78 + c5_y = pin_bst[1] + s.place("Device:C", "C5", "100nF", c5_x, c5_y, rot=90, + pins={"1": uid(), "2": uid()}) + # C5 pin 1 (at x+2.54 when rot=90) connects to BST + # When rotated 90°: pin 1 at (cx+2.54, cy), pin 2 at (cx-2.54, cy) + # Actually with rot=90: pin1 goes from 270° direction -> right side + # pin1 at x+2.54, pin2 at x-2.54 + s.wire(pin_bst[0], pin_bst[1], c5_x + 2.54, c5_y) + # C5 pin 2 to SW node (junction at SW + 2.54) + sw_junc_x = pin_sw[0] + 2.54 + s.wire(c5_x - 2.54, c5_y, sw_junc_x, c5_y) + s.wire(sw_junc_x, c5_y, sw_junc_x, pin_sw[1]) + # Connect SW pin to junction + s.wire(pin_sw[0], pin_sw[1], sw_junc_x, pin_sw[1]) + s.junc(sw_junc_x, pin_sw[1]) + + # ── Output caps C6, C7 (22µF) ── + c6_x = vout_rail_x + 7.62 + c6_y = vout_rail_y + 7.62 + s.place("Device:C", "C6", "22uF", c6_x, c6_y, + pins={"1": uid(), "2": uid()}) + s.wire(c6_x, c6_y - 2.54, c6_x, vout_rail_y) + s.wire(vout_rail_x, vout_rail_y, c6_x, vout_rail_y) + s.junc(vout_rail_x, vout_rail_y) + s.pwr("power:GND", "GND", c6_x, c6_y + 5.08) + s.wire(c6_x, c6_y + 2.54, c6_x, c6_y + 5.08) + + c7_x = c6_x + 7.62 + c7_y = c6_y + s.place("Device:C", "C7", "22uF", c7_x, c7_y, + pins={"1": uid(), "2": uid()}) + s.wire(c7_x, c7_y - 2.54, c7_x, vout_rail_y) + s.wire(c6_x, vout_rail_y, c7_x, vout_rail_y) + s.junc(c6_x, vout_rail_y) + s.pwr("power:GND", "GND", c7_x, c7_y + 5.08) + s.wire(c7_x, c7_y + 2.54, c7_x, c7_y + 5.08) + + # +12V output symbol + s.pwr("power:+12V", "+12V", c7_x, vout_rail_y - 5.08) + s.wire(c7_x, vout_rail_y, c7_x, vout_rail_y - 5.08) + s.junc(c7_x, vout_rail_y) + + # ── Feedback divider: R2 (190k) + R3 (10k) ── + # VOUT -> R2 -> FB_tap -> R3 -> GND + # FB_tap connects to IC FB pin + fb_x = vout_rail_x + 2.54 + r2_y = cy + 2.54 + s.place("Device:R", "R2", "190k", fb_x, r2_y, + pins={"1": uid(), "2": uid()}) + # R2 top to VOUT rail + s.wire(fb_x, r2_y - 3.81, fb_x, vout_rail_y) + s.wire(vout_rail_x, vout_rail_y, fb_x, vout_rail_y) + + r3_y = r2_y + 10.16 + s.place("Device:R", "R3", "10k", fb_x, r3_y, + pins={"1": uid(), "2": uid()}) + # R2 bottom to R3 top (FB tap point) + fb_tap_y = r2_y + 3.81 + r3_top_y = r3_y - 3.81 + s.wire(fb_x, fb_tap_y, fb_x, r3_top_y) + + # FB tap to IC FB pin + s.wire(fb_x, fb_tap_y, pin_fb[0], fb_tap_y) + s.wire(pin_fb[0], fb_tap_y, pin_fb[0], pin_fb[1]) + s.junc(fb_x, fb_tap_y) + + # R3 bottom to GND + s.pwr("power:GND", "GND", fb_x, r3_y + 6.35) + s.wire(fb_x, r3_y + 3.81, fb_x, r3_y + 6.35) + + # ── PGOOD: no connect (optional, user can wire if needed) ── + s.no_connect(pin_pg[0], pin_pg[1]) + + # ── PWR_FLAG for +5V and GND (tells ERC these nets are externally powered) ── + s.pwr_flag(pwr5v_x + 5.08, vin_rail_y) + s.wire(pwr5v_x + 5.08, vin_rail_y, pwr5v_x, vin_rail_y) + s.junc(pwr5v_x, vin_rail_y) + + s.pwr_flag(c1_x + 5.08, c1_y + 5.08) + s.wire(c1_x + 5.08, c1_y + 5.08, c1_x, c1_y + 5.08) + s.junc(c1_x, c1_y + 5.08) + + # ── Design notes ── + nx, ny = 40.64, 40.64 + s.note(nx, ny, "TPS61088 Boost Converter: 5V to 12V @ 2A") + s.note(nx, ny + 3, "Input: +5V from Raspberry Pi bus") + s.note(nx, ny + 6, "Output: +12V for A4988 stepper driver (VMOT)") + s.note(nx, ny + 11, "Component Notes:") + s.note(nx, ny + 14, "L1: 2.2uH, >=10A saturation, low DCR") + s.note(nx, ny + 17, " (Coilcraft XAL7030-222ME or Wurth 744311220)") + s.note(nx, ny + 20, "C1,C2,C6,C7: 22uF 25V X5R/X7R ceramic") + s.note(nx, ny + 23, "R2/R3: VOUT = 0.6V x (1 + 190k/10k) = 12.06V") + s.note(nx, ny + 26, "R1,C4: Compensation - see TPS61088 datasheet Table 2") + s.note(nx, ny + 31, "PCB Layout Critical:") + s.note(nx, ny + 34, "- Keep SW, BST, inductor loop tight and short") + s.note(nx, ny + 37, "- Input/output caps close to IC pins") + s.note(nx, ny + 40, "- Solid ground plane under IC") + s.note(nx, ny + 43, "- FB trace away from SW/inductor noise") + + return s.render() + + +if __name__ == "__main__": + sch = generate() + outfile = "tps61088_boost.kicad_sch" + with open(outfile, "w") as f: + f.write(sch) + print(f"Generated {outfile}") + print("Open in KiCad Schematic Editor to review.") diff --git a/tps61088_boost.kicad_sch b/tps61088_boost.kicad_sch new file mode 100644 index 0000000..b2ad102 --- /dev/null +++ b/tps61088_boost.kicad_sch @@ -0,0 +1,1864 @@ +(kicad_sch + (version 20250114) + (generator "python_gen") + (generator_version "9.0") + (uuid "6dd3b1f9-22f6-4903-9fcc-e996b22e0fe8") + (paper "A3") + (lib_symbols + (symbol "custom:TPS61088" + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "U" + (at 0 16.51 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "TPS61088" + (at 0 13.97 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Package_DFN_QFN:QFN-20-1EP_3.5x3.5mm_P0.5mm_EP2.1x2.1mm" + (at 0 -20.32 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "https://www.ti.com/lit/ds/symlink/tps61088.pdf" + (at 0 -22.86 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "10A Fully-Integrated Synchronous Boost Converter" + (at 0 -25.4 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (symbol "TPS61088_0_1" + (rectangle + (start -10.16 12.7) + (end 10.16 -12.7) + (stroke (width 0.254) (type default)) + (fill (type background)) + ) + ) + (symbol "TPS61088_1_1" + (pin power_in line + (at -12.7 10.16 0) (length 2.54) + (name "VIN" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin input line + (at -12.7 5.08 0) (length 2.54) + (name "EN" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin passive line + (at -12.7 0 0) (length 2.54) + (name "SS/TR" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin passive line + (at -12.7 -5.08 0) (length 2.54) + (name "COMP" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin input line + (at -12.7 -10.16 0) (length 2.54) + (name "FB" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + (pin passive line + (at 12.7 10.16 180) (length 2.54) + (name "SW" (effects (font (size 1.27 1.27)))) + (number "12" (effects (font (size 1.27 1.27)))) + ) + (pin passive line + (at 12.7 5.08 180) (length 2.54) + (name "BST" (effects (font (size 1.27 1.27)))) + (number "11" (effects (font (size 1.27 1.27)))) + ) + (pin power_out line + (at 12.7 0 180) (length 2.54) + (name "VOUT" (effects (font (size 1.27 1.27)))) + (number "9" (effects (font (size 1.27 1.27)))) + ) + (pin open_collector line + (at 12.7 -5.08 180) (length 2.54) + (name "PGOOD" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line + (at 0 -15.24 90) (length 2.54) + (name "PGND" (effects (font (size 1.27 1.27)))) + (number "15" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line + (at -5.08 -15.24 90) (length 2.54) + (name "AGND" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Device:C" + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "C" + (at 1.27 0 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "C" + (at 1.27 -2.54 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "Unpolarized capacitor" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (symbol "C_0_1" + (polyline + (pts (xy -2.032 -0.762) (xy 2.032 -0.762)) + (stroke (width 0.508) (type default)) + (fill (type none)) + ) + (polyline + (pts (xy -2.032 0.762) (xy 2.032 0.762)) + (stroke (width 0.508) (type default)) + (fill (type none)) + ) + ) + (symbol "C_1_1" + (pin passive line + (at 0 2.54 270) (length 2.54) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line + (at 0 -2.54 90) (length 2.54) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Device:R" + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "R" + (at 2.032 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "R" + (at 0 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "Resistor" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (symbol "R_0_1" + (rectangle + (start -1.016 -2.54) + (end 1.016 2.54) + (stroke (width 0.254) (type default)) + (fill (type none)) + ) + ) + (symbol "R_1_1" + (pin passive line + (at 0 3.81 270) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line + (at 0 -3.81 90) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Device:L" + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "L" + (at -1.016 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "L" + (at 1.016 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "Inductor" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (symbol "L_0_1" + (arc + (start 0 -2.54) (mid 0.6323 -1.905) (end 0 -1.27) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (arc + (start 0 -1.27) (mid 0.6323 -0.635) (end 0 0) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (arc + (start 0 0) (mid 0.6323 0.635) (end 0 1.27) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (arc + (start 0 1.27) (mid 0.6323 1.905) (end 0 2.54) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "L_1_1" + (pin passive line + (at 0 3.81 270) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line + (at 0 -3.81 90) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "power:+5V" + (power) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -3.81 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Value" "+5V" + (at 0 3.81 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "Power symbol creates a global label with name \"+5V\"" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (symbol "+5V_0_1" + (polyline + (pts (xy -0.762 1.27) (xy 0 2.54)) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts (xy 0 0) (xy 0 2.54)) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts (xy 0 2.54) (xy 0.762 1.27)) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "+5V_1_1" + (pin power_in line + (at 0 0 90) (length 0) + (name "+5V" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "power:+12V" + (power) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -3.81 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Value" "+12V" + (at 0 3.81 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "Power symbol creates a global label with name \"+12V\"" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (symbol "+12V_0_1" + (polyline + (pts (xy -0.762 1.27) (xy 0 2.54)) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts (xy 0 0) (xy 0 2.54)) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts (xy 0 2.54) (xy 0.762 1.27)) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "+12V_1_1" + (pin power_in line + (at 0 0 90) (length 0) + (name "+12V" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "power:GND" + (power) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -3.81 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Value" "GND" + (at 0 3.81 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "Power symbol creates a global label with name \"GND\"" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (symbol "GND_0_1" + (polyline + (pts (xy 0 0) (xy 0 -1.27) (xy 1.27 -1.27) (xy 0 -2.54) (xy -1.27 -1.27) (xy 0 -1.27)) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "GND_1_1" + (pin power_in line + (at 0 0 270) (length 0) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "power:PWR_FLAG" + (power) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#FLG" + (at 0 1.905 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Value" "PWR_FLAG" + (at 0 3.81 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "Special symbol for telling ERC where power comes from" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "ki_keywords" "power-flag" + (at 0 0 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (symbol "PWR_FLAG_0_0" + (pin power_out line + (at 0 0 90) (length 0) + (name "pwr" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + ) + (symbol "PWR_FLAG_0_1" + (polyline + (pts (xy 0 0) (xy 0 1.27) (xy -1.016 1.905) (xy 0 2.54) (xy 1.016 1.905) (xy 0 1.27)) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + ) + ) + (junction + (at 81.28 66.04) + (diameter 0) + (color 0 0 0 0) + (uuid "f6778c5c-7772-41a9-9d5e-e7d7819089ad") + ) + (junction + (at 81.28 66.04) + (diameter 0) + (color 0 0 0 0) + (uuid "2f40cf00-af42-4cc9-a98f-1016ad7748eb") + ) + (junction + (at 73.66 66.04) + (diameter 0) + (color 0 0 0 0) + (uuid "efc59854-1dd3-49fc-8a38-91101e37d892") + ) + (junction + (at 101.6 96.52) + (diameter 0) + (color 0 0 0 0) + (uuid "8fd797c9-a8b1-44fb-9264-3bda438ec9b2") + ) + (junction + (at 134.62 66.04) + (diameter 0) + (color 0 0 0 0) + (uuid "7c31f5c6-c524-4092-ab82-08e1bf991b3d") + ) + (junction + (at 116.84 66.04) + (diameter 0) + (color 0 0 0 0) + (uuid "d5d1f9b4-4fbd-4aa7-bcd6-cd0ceafb820a") + ) + (junction + (at 134.62 66.04) + (diameter 0) + (color 0 0 0 0) + (uuid "53fca291-4ea7-4649-8b28-fc33e9ee6e6f") + ) + (junction + (at 142.24 66.04) + (diameter 0) + (color 0 0 0 0) + (uuid "38585cc6-9815-4caa-b168-fcdefc50e9c6") + ) + (junction + (at 149.86 66.04) + (diameter 0) + (color 0 0 0 0) + (uuid "0ffc7343-e8ab-4504-8400-f2c1f73ce1f6") + ) + (junction + (at 137.16 82.55000000000001) + (diameter 0) + (color 0 0 0 0) + (uuid "11854b17-46d9-41fd-8856-8f92f7d90b3f") + ) + (junction + (at 81.28 66.04) + (diameter 0) + (color 0 0 0 0) + (uuid "c46fec61-5f8f-48f3-b47e-0cbb935ac107") + ) + (junction + (at 73.66 78.74000000000001) + (diameter 0) + (color 0 0 0 0) + (uuid "88a7bcdd-d98c-4f8f-8e8e-0db928a3b629") + ) + (no_connect + (at 114.3 81.28) + (uuid "c62a4e23-ea96-4e99-918d-b825b696154c") + ) + (wire + (pts (xy 88.89999999999999 66.04) (xy 81.28 66.04)) + (stroke (width 0) (type default)) + (uuid "001dadaf-b8cc-49bf-b6e5-03cbf1538a89") + ) + (wire + (pts (xy 88.89999999999999 71.12) (xy 81.28 71.12)) + (stroke (width 0) (type default)) + (uuid "0513e9c7-edcb-4309-83a1-df5a6612924f") + ) + (wire + (pts (xy 81.28 71.12) (xy 81.28 66.04)) + (stroke (width 0) (type default)) + (uuid "fe08d7cc-8dcd-4bab-a75b-da6a4f6878e0") + ) + (wire + (pts (xy 81.28 60.96000000000001) (xy 81.28 66.04)) + (stroke (width 0) (type default)) + (uuid "83810a3a-b26f-499c-b56d-7256cdfabd37") + ) + (wire + (pts (xy 73.66 71.12) (xy 73.66 66.04)) + (stroke (width 0) (type default)) + (uuid "3a0d98cf-f74f-455d-8500-d75636aa413d") + ) + (wire + (pts (xy 73.66 66.04) (xy 81.28 66.04)) + (stroke (width 0) (type default)) + (uuid "124abf85-8738-4ef8-be9a-be3c700dfd9b") + ) + (wire + (pts (xy 73.66 76.20000000000002) (xy 73.66 78.74000000000001)) + (stroke (width 0) (type default)) + (uuid "004fc477-9493-4381-a29d-093590c8efdf") + ) + (wire + (pts (xy 66.04 71.12) (xy 66.04 66.04)) + (stroke (width 0) (type default)) + (uuid "0816f709-c0d0-4282-b415-35cd500cde5b") + ) + (wire + (pts (xy 66.04 66.04) (xy 73.66 66.04)) + (stroke (width 0) (type default)) + (uuid "23f85860-296b-4aa0-8db1-0c61319579ec") + ) + (wire + (pts (xy 66.04 76.20000000000002) (xy 66.04 78.74000000000001)) + (stroke (width 0) (type default)) + (uuid "dc24144f-3633-46d5-9bb4-8479a2fb31bb") + ) + (wire + (pts (xy 88.89999999999999 76.2) (xy 73.66 76.2)) + (stroke (width 0) (type default)) + (uuid "e2ba4125-d594-4a3d-b222-caec409f0033") + ) + (wire + (pts (xy 73.66 81.28) (xy 73.66 76.2)) + (stroke (width 0) (type default)) + (uuid "ac2f397d-d87e-4aba-94bc-ab09cb4d2a13") + ) + (wire + (pts (xy 73.66 86.36000000000001) (xy 73.66 88.9)) + (stroke (width 0) (type default)) + (uuid "1a8a0e4a-1290-4abf-98f7-b6a60a80bd51") + ) + (wire + (pts (xy 88.89999999999999 81.28) (xy 73.66 81.28)) + (stroke (width 0) (type default)) + (uuid "e5a9af38-e0a9-48a0-acbe-86bf6d333632") + ) + (wire + (pts (xy 73.66 82.55) (xy 73.66 81.28)) + (stroke (width 0) (type default)) + (uuid "f0665ed4-c2f7-4b86-82fc-7d2149e5fd0b") + ) + (wire + (pts (xy 73.66 90.17) (xy 73.66 92.71)) + (stroke (width 0) (type default)) + (uuid "c60291dc-0fb6-411f-8650-305ee46a0b0f") + ) + (wire + (pts (xy 73.66 97.79) (xy 73.66 100.33)) + (stroke (width 0) (type default)) + (uuid "8b0fbf2b-d469-401e-a7dd-57ab0f04b7f0") + ) + (wire + (pts (xy 101.6 91.44) (xy 101.6 96.52)) + (stroke (width 0) (type default)) + (uuid "ef5e5741-84f4-4307-8920-6d32390d8fb9") + ) + (wire + (pts (xy 96.52 91.44) (xy 96.52 96.52)) + (stroke (width 0) (type default)) + (uuid "25db51cf-3895-4f42-845b-48133ae18664") + ) + (wire + (pts (xy 96.52 96.52) (xy 101.6 96.52)) + (stroke (width 0) (type default)) + (uuid "2ab4d13a-428a-4710-bbb7-1c1aafce8a51") + ) + (wire + (pts (xy 116.84 66.04) (xy 120.64999999999999 66.04)) + (stroke (width 0) (type default)) + (uuid "ca0f789d-e4aa-4814-bae8-f0e8e63ea1e6") + ) + (wire + (pts (xy 128.26999999999998 66.04) (xy 134.62 66.04)) + (stroke (width 0) (type default)) + (uuid "042d6359-d015-4785-90a0-df97f59f6919") + ) + (wire + (pts (xy 114.3 76.2) (xy 134.62 76.2)) + (stroke (width 0) (type default)) + (uuid "33c55f9a-2633-4ee0-b2bc-b3dd5365e4c1") + ) + (wire + (pts (xy 134.62 76.2) (xy 134.62 66.04)) + (stroke (width 0) (type default)) + (uuid "6bf9502e-78de-43dd-a734-6d8df0ff124d") + ) + (wire + (pts (xy 114.3 71.12) (xy 121.92 71.12)) + (stroke (width 0) (type default)) + (uuid "e9dd579b-801d-4a76-b385-81b32831634d") + ) + (wire + (pts (xy 116.83999999999999 71.12) (xy 116.84 71.12)) + (stroke (width 0) (type default)) + (uuid "41e3324b-47fc-47cd-943a-5027b68fef1f") + ) + (wire + (pts (xy 116.84 71.12) (xy 116.84 66.04)) + (stroke (width 0) (type default)) + (uuid "2d1a7d1d-29e2-4f1e-a105-a474a91dc646") + ) + (wire + (pts (xy 114.3 66.04) (xy 116.84 66.04)) + (stroke (width 0) (type default)) + (uuid "347f6d88-e5c1-4c36-8212-6e7bba3af190") + ) + (wire + (pts (xy 142.24 71.12) (xy 142.24 66.04)) + (stroke (width 0) (type default)) + (uuid "edd414ac-6e24-4a0a-978a-118a0a2bf689") + ) + (wire + (pts (xy 134.62 66.04) (xy 142.24 66.04)) + (stroke (width 0) (type default)) + (uuid "9c063834-2b94-4602-ae8f-5e532ad236da") + ) + (wire + (pts (xy 142.24 76.20000000000002) (xy 142.24 78.74000000000001)) + (stroke (width 0) (type default)) + (uuid "275dd743-5300-4b98-9e70-21ffeb40404e") + ) + (wire + (pts (xy 149.86 71.12) (xy 149.86 66.04)) + (stroke (width 0) (type default)) + (uuid "344a4d18-0501-493a-965b-a6a191a8b276") + ) + (wire + (pts (xy 142.24 66.04) (xy 149.86 66.04)) + (stroke (width 0) (type default)) + (uuid "0a835ba0-0b4f-46bf-ad6e-763233eb85de") + ) + (wire + (pts (xy 149.86 76.20000000000002) (xy 149.86 78.74000000000001)) + (stroke (width 0) (type default)) + (uuid "161f821c-68b3-48ad-a76c-b5fbcb69d4a7") + ) + (wire + (pts (xy 149.86 66.04) (xy 149.86 60.96000000000001)) + (stroke (width 0) (type default)) + (uuid "b56379b8-052a-465a-b2ea-f97c8c24be98") + ) + (wire + (pts (xy 137.16 74.93) (xy 137.16 66.04)) + (stroke (width 0) (type default)) + (uuid "87321ca7-6515-477f-9559-7042716f504f") + ) + (wire + (pts (xy 134.62 66.04) (xy 137.16 66.04)) + (stroke (width 0) (type default)) + (uuid "ec1f84d4-e045-44c8-abdc-9400d1922db0") + ) + (wire + (pts (xy 137.16 82.55000000000001) (xy 137.16 85.09)) + (stroke (width 0) (type default)) + (uuid "818ffc97-1e3f-47f4-b686-3c0838381c6e") + ) + (wire + (pts (xy 137.16 82.55000000000001) (xy 88.89999999999999 82.55000000000001)) + (stroke (width 0) (type default)) + (uuid "bb1bc6f6-7f08-4c79-8ed6-e844cd1f4bbf") + ) + (wire + (pts (xy 88.89999999999999 82.55000000000001) (xy 88.89999999999999 86.36)) + (stroke (width 0) (type default)) + (uuid "bad435f4-2139-413f-a02a-b9d51243a31d") + ) + (wire + (pts (xy 137.16 92.71000000000001) (xy 137.16 95.25)) + (stroke (width 0) (type default)) + (uuid "cde2d365-9bce-48b4-971f-6ff896bbcb99") + ) + (wire + (pts (xy 86.36 66.04) (xy 81.28 66.04)) + (stroke (width 0) (type default)) + (uuid "34a4ea52-092a-4d6f-a4eb-09fac4917add") + ) + (wire + (pts (xy 78.74 78.74000000000001) (xy 73.66 78.74000000000001)) + (stroke (width 0) (type default)) + (uuid "291a0408-ba20-438c-a1ce-fa2fd874002f") + ) + (text "TPS61088 Boost Converter: 5V to 12V @ 2A" + (exclude_from_sim no) + (at 40.64 40.64 0) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid "fbbd73e0-c1b2-4dea-a796-53208680cd13") + ) + (text "Input: +5V from Raspberry Pi bus" + (exclude_from_sim no) + (at 40.64 43.64 0) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid "35de827d-8d07-499a-864c-9c0bfb6b1be3") + ) + (text "Output: +12V for A4988 stepper driver (VMOT)" + (exclude_from_sim no) + (at 40.64 46.64 0) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid "76f96252-bbce-4fae-94ba-b92d78f731f2") + ) + (text "Component Notes:" + (exclude_from_sim no) + (at 40.64 51.64 0) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid "81ae7a54-7e5f-48df-892c-9de631b6ae2a") + ) + (text "L1: 2.2uH, >=10A saturation, low DCR" + (exclude_from_sim no) + (at 40.64 54.64 0) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid "ee1418d8-62d3-4f57-a6b6-64f1ba51ee4f") + ) + (text " (Coilcraft XAL7030-222ME or Wurth 744311220)" + (exclude_from_sim no) + (at 40.64 57.64 0) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid "0bc02ef6-20ff-4d5a-b527-ab0cb942e48d") + ) + (text "C1,C2,C6,C7: 22uF 25V X5R/X7R ceramic" + (exclude_from_sim no) + (at 40.64 60.64 0) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid "4cb96a02-5019-4ab8-b3f5-a30b2cac17fa") + ) + (text "R2/R3: VOUT = 0.6V x (1 + 190k/10k) = 12.06V" + (exclude_from_sim no) + (at 40.64 63.64 0) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid "237db0c2-2aca-4ed8-a5ad-42fa34e676b0") + ) + (text "R1,C4: Compensation - see TPS61088 datasheet Table 2" + (exclude_from_sim no) + (at 40.64 66.64 0) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid "03b92fe2-0828-4854-914c-6faf4f48738b") + ) + (text "PCB Layout Critical:" + (exclude_from_sim no) + (at 40.64 71.64 0) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid "767c8ad6-45c8-4f39-8c50-16d6d060996c") + ) + (text "- Keep SW, BST, inductor loop tight and short" + (exclude_from_sim no) + (at 40.64 74.64 0) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid "8227f350-1456-459a-95d8-3c75a1f8373b") + ) + (text "- Input/output caps close to IC pins" + (exclude_from_sim no) + (at 40.64 77.64 0) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid "a8908805-a46c-4edd-b5ef-a16085644891") + ) + (text "- Solid ground plane under IC" + (exclude_from_sim no) + (at 40.64 80.64 0) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid "a6f0a867-f258-4447-bf7c-43623cdb2896") + ) + (text "- FB trace away from SW/inductor noise" + (exclude_from_sim no) + (at 40.64 83.64 0) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid "3a87a7c2-3400-4138-ace5-c9e52ac671b0") + ) + (symbol + (lib_id "custom:TPS61088") + (at 101.6 76.2 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "b982a158-ed5f-48da-ac72-85d5126867a3") + (property "Reference" "U1" + (at 104.14 73.66 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "TPS61088" + (at 104.14 78.74000000000001 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" + (at 101.6 76.2 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 101.6 76.2 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at 101.6 76.2 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "18835311-d7b8-4c23-a07d-0842b8ceecdf") + ) + (pin "3" + (uuid "7b7b8464-56a7-4431-a171-5bea59eedfbc") + ) + (pin "4" + (uuid "44fdf44b-84c9-447f-b43c-721bc8d0043d") + ) + (pin "5" + (uuid "bfbc3a8b-ed09-4e29-a69d-b3acd7983ed2") + ) + (pin "6" + (uuid "ae488185-0e91-4664-a4da-29cc9e6ddd7d") + ) + (pin "7" + (uuid "ca99d415-2d5e-468d-b9b9-4800239be7f0") + ) + (pin "8" + (uuid "e374d94c-994e-446a-af32-388d543185f5") + ) + (pin "9" + (uuid "4445af42-df11-4512-9ace-96bc81ccd87e") + ) + (pin "11" + (uuid "8720374a-9e34-4776-950f-9d6689375af3") + ) + (pin "12" + (uuid "07c83d73-f8d9-4a7c-92ee-f78035028f48") + ) + (pin "15" + (uuid "39e11281-4c71-4057-a423-0be68f0515e7") + ) + (instances + (project "" + (path "/6dd3b1f9-22f6-4903-9fcc-e996b22e0fe8" + (reference "U1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:+5V") + (at 81.28 60.96000000000001 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "45c39791-83f9-4643-891c-1f8f021149b0") + (property "Reference" "#PWR01" + (at 81.28 58.42000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Value" "+5V" + (at 81.28 64.77000000000001 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" + (at 81.28 60.96000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 81.28 60.96000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at 81.28 60.96000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "1fc2c49e-4210-4f53-8f3a-4b962d3e1124") + ) + (instances + (project "" + (path "/6dd3b1f9-22f6-4903-9fcc-e996b22e0fe8" + (reference "#PWR01") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C") + (at 73.66 73.66000000000001 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "0a0c501a-bfc3-4685-af75-c0aa53888c97") + (property "Reference" "C1" + (at 76.2 71.12 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "22uF" + (at 76.2 76.20000000000002 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" + (at 73.66 73.66000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 73.66 73.66000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at 73.66 73.66000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "0e86dbcd-7ca5-4b40-ab93-8c876cad81d5") + ) + (pin "2" + (uuid "761fdf24-7f5e-43bf-98e8-5d43aebe635e") + ) + (instances + (project "" + (path "/6dd3b1f9-22f6-4903-9fcc-e996b22e0fe8" + (reference "C1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 73.66 78.74000000000001 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "67e74f67-1a90-4842-8a87-d792445342a5") + (property "Reference" "#PWR02" + (at 73.66 76.2 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Value" "GND" + (at 73.66 82.55000000000001 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" + (at 73.66 78.74000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 73.66 78.74000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at 73.66 78.74000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "875ad237-56a8-4e31-9f1a-d8484a57045d") + ) + (instances + (project "" + (path "/6dd3b1f9-22f6-4903-9fcc-e996b22e0fe8" + (reference "#PWR02") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C") + (at 66.04 73.66000000000001 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "63c40fa2-8841-4047-b6df-2cdd457f8591") + (property "Reference" "C2" + (at 68.58000000000001 71.12 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "22uF" + (at 68.58000000000001 76.20000000000002 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" + (at 66.04 73.66000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 66.04 73.66000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at 66.04 73.66000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "19e8f4ca-9b05-42fe-9c3a-410b22654b1b") + ) + (pin "2" + (uuid "0c8813b3-4b7f-4743-baa7-6fdd64efc441") + ) + (instances + (project "" + (path "/6dd3b1f9-22f6-4903-9fcc-e996b22e0fe8" + (reference "C2") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 66.04 78.74000000000001 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "c27b6e69-8f45-433b-b80f-75cf50dc6622") + (property "Reference" "#PWR03" + (at 66.04 76.2 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Value" "GND" + (at 66.04 82.55000000000001 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" + (at 66.04 78.74000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 66.04 78.74000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at 66.04 78.74000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "b0600e84-00d8-4098-a6f4-555ac9dfd2c8") + ) + (instances + (project "" + (path "/6dd3b1f9-22f6-4903-9fcc-e996b22e0fe8" + (reference "#PWR03") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C") + (at 73.66 83.82000000000001 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "ff718acf-4b51-45ca-824d-68721a1cbd33") + (property "Reference" "C3" + (at 76.2 81.28 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "22nF" + (at 76.2 86.36000000000001 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" + (at 73.66 83.82000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 73.66 83.82000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at 73.66 83.82000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "32f9b115-4922-4426-8c0e-cb75781554ed") + ) + (pin "2" + (uuid "ad19fedd-336e-4434-a031-02898dd938b4") + ) + (instances + (project "" + (path "/6dd3b1f9-22f6-4903-9fcc-e996b22e0fe8" + (reference "C3") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 73.66 88.9 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "3579af73-a690-423f-9524-4bff686b085e") + (property "Reference" "#PWR04" + (at 73.66 86.36 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Value" "GND" + (at 73.66 92.71000000000001 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" + (at 73.66 88.9 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 73.66 88.9 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at 73.66 88.9 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "6ab21472-c8be-4553-8b6f-07e51a945e97") + ) + (instances + (project "" + (path "/6dd3b1f9-22f6-4903-9fcc-e996b22e0fe8" + (reference "#PWR04") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 73.66 86.36 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "0189331d-6ea9-4ecf-bdb3-8bc62662eb5b") + (property "Reference" "R1" + (at 76.2 83.82 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "30.1k" + (at 76.2 88.9 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" + (at 73.66 86.36 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 73.66 86.36 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at 73.66 86.36 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "09cb7057-d8b7-494b-966d-ef2438214c17") + ) + (pin "2" + (uuid "a50ba7ac-84be-4682-b42b-d75ad98c546d") + ) + (instances + (project "" + (path "/6dd3b1f9-22f6-4903-9fcc-e996b22e0fe8" + (reference "R1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C") + (at 73.66 95.25 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "ed376484-4208-493f-bb0e-ed29945f3e4b") + (property "Reference" "C4" + (at 76.2 92.71 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "47pF" + (at 76.2 97.79 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" + (at 73.66 95.25 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 73.66 95.25 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at 73.66 95.25 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "1b6fafc0-d4ea-40c9-860d-ad120cb9a9d7") + ) + (pin "2" + (uuid "c0a309d5-487e-4b2a-b8fa-6e6d161a12cb") + ) + (instances + (project "" + (path "/6dd3b1f9-22f6-4903-9fcc-e996b22e0fe8" + (reference "C4") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 73.66 100.33 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "8ba13565-8f3b-4e01-99f8-66570998b990") + (property "Reference" "#PWR05" + (at 73.66 97.78999999999999 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Value" "GND" + (at 73.66 104.14 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" + (at 73.66 100.33 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 73.66 100.33 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at 73.66 100.33 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "bda18a56-7539-4785-a3f6-befe673f7835") + ) + (instances + (project "" + (path "/6dd3b1f9-22f6-4903-9fcc-e996b22e0fe8" + (reference "#PWR05") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 101.6 96.52 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "d69e4e85-42a2-4f27-ae33-f6bfc68cba82") + (property "Reference" "#PWR06" + (at 101.6 93.97999999999999 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Value" "GND" + (at 101.6 100.33 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" + (at 101.6 96.52 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 101.6 96.52 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at 101.6 96.52 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "eed5e061-77da-4aa3-86f9-9083bc92e89a") + ) + (instances + (project "" + (path "/6dd3b1f9-22f6-4903-9fcc-e996b22e0fe8" + (reference "#PWR06") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:L") + (at 124.46 66.04 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "43d1d83c-1244-4fb5-bc41-8fbb997a2c53") + (property "Reference" "L1" + (at 127.0 63.50000000000001 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "2.2uH" + (at 127.0 68.58000000000001 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" + (at 124.46 66.04 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 124.46 66.04 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at 124.46 66.04 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "0b75d600-da68-4982-8e75-61e68ff9ecf2") + ) + (pin "2" + (uuid "97c10d46-78b7-453d-879b-7df75465a063") + ) + (instances + (project "" + (path "/6dd3b1f9-22f6-4903-9fcc-e996b22e0fe8" + (reference "L1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C") + (at 119.38 71.12 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "9bb255ff-dc7b-4203-b5bc-d8b22aafe6a8") + (property "Reference" "C5" + (at 121.92 68.58 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "100nF" + (at 121.92 73.66000000000001 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" + (at 119.38 71.12 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 119.38 71.12 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at 119.38 71.12 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "52cbb35e-73c3-404b-ac74-e24abb06a1f7") + ) + (pin "2" + (uuid "c70090be-7ef1-45ed-9e32-487f36092d94") + ) + (instances + (project "" + (path "/6dd3b1f9-22f6-4903-9fcc-e996b22e0fe8" + (reference "C5") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C") + (at 142.24 73.66000000000001 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "16735bff-73d3-48b4-8497-76e75b9d38d1") + (property "Reference" "C6" + (at 144.78 71.12 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "22uF" + (at 144.78 76.20000000000002 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" + (at 142.24 73.66000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 142.24 73.66000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at 142.24 73.66000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "a088b5be-c057-42b7-b7c4-9678bdc79502") + ) + (pin "2" + (uuid "d21028d9-e30c-4a1a-96bd-7f435a90868d") + ) + (instances + (project "" + (path "/6dd3b1f9-22f6-4903-9fcc-e996b22e0fe8" + (reference "C6") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 142.24 78.74000000000001 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "19b5b356-20a3-499b-8548-f7dce194de1f") + (property "Reference" "#PWR07" + (at 142.24 76.2 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Value" "GND" + (at 142.24 82.55000000000001 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" + (at 142.24 78.74000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 142.24 78.74000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at 142.24 78.74000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "6cb45d16-1113-47fc-8b89-1c10450625c3") + ) + (instances + (project "" + (path "/6dd3b1f9-22f6-4903-9fcc-e996b22e0fe8" + (reference "#PWR07") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C") + (at 149.86 73.66000000000001 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "447ed623-412c-4142-afab-cae9f50ce932") + (property "Reference" "C7" + (at 152.4 71.12 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "22uF" + (at 152.4 76.20000000000002 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" + (at 149.86 73.66000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 149.86 73.66000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at 149.86 73.66000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "aec327eb-fa1d-48c4-b774-ed418f7c216c") + ) + (pin "2" + (uuid "a35fff4f-fd1f-4b54-883d-3f26174a5a11") + ) + (instances + (project "" + (path "/6dd3b1f9-22f6-4903-9fcc-e996b22e0fe8" + (reference "C7") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 149.86 78.74000000000001 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "c3851d7b-7679-4f58-99e3-570a297cd55e") + (property "Reference" "#PWR08" + (at 149.86 76.2 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Value" "GND" + (at 149.86 82.55000000000001 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" + (at 149.86 78.74000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 149.86 78.74000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at 149.86 78.74000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "8f4e983a-771a-484a-ba0f-9dbe1b4ef961") + ) + (instances + (project "" + (path "/6dd3b1f9-22f6-4903-9fcc-e996b22e0fe8" + (reference "#PWR08") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:+12V") + (at 149.86 60.96000000000001 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "c891eefe-165a-4574-a024-f30fbe284c38") + (property "Reference" "#PWR09" + (at 149.86 58.42000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Value" "+12V" + (at 149.86 64.77000000000001 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" + (at 149.86 60.96000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 149.86 60.96000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at 149.86 60.96000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "6a64b15e-f76a-4cff-8798-7353e4641026") + ) + (instances + (project "" + (path "/6dd3b1f9-22f6-4903-9fcc-e996b22e0fe8" + (reference "#PWR09") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 137.16 78.74000000000001 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "f3033f12-df84-42d6-9e77-66d6272e70af") + (property "Reference" "R2" + (at 139.7 76.2 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "190k" + (at 139.7 81.28000000000002 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" + (at 137.16 78.74000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 137.16 78.74000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at 137.16 78.74000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "059b8de4-5043-4381-8d86-75db2ea79ece") + ) + (pin "2" + (uuid "86b0cea3-9a44-48cc-9006-2d0fc3feb162") + ) + (instances + (project "" + (path "/6dd3b1f9-22f6-4903-9fcc-e996b22e0fe8" + (reference "R2") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 137.16 88.9 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "35cd833e-f668-4ed6-b08d-f2af4597dc30") + (property "Reference" "R3" + (at 139.7 86.36 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "10k" + (at 139.7 91.44000000000001 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" + (at 137.16 88.9 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 137.16 88.9 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at 137.16 88.9 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "01c3918e-3231-4195-8162-74f33c5a743a") + ) + (pin "2" + (uuid "0c17b2ad-0dc9-4460-9719-179a4ff889b8") + ) + (instances + (project "" + (path "/6dd3b1f9-22f6-4903-9fcc-e996b22e0fe8" + (reference "R3") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 137.16 95.25 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "bc6fded2-3653-46ab-bce7-1bcbd4e9515a") + (property "Reference" "#PWR10" + (at 137.16 92.71 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Value" "GND" + (at 137.16 99.06 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" + (at 137.16 95.25 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 137.16 95.25 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at 137.16 95.25 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "e86e1942-9390-48f4-868a-165385d57372") + ) + (instances + (project "" + (path "/6dd3b1f9-22f6-4903-9fcc-e996b22e0fe8" + (reference "#PWR10") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:PWR_FLAG") + (at 86.36 66.04 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "84cadca9-2ee0-439c-a053-0d0dd14a6b5b") + (property "Reference" "#FLG01" + (at 86.36 63.50000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Value" "PWR_FLAG" + (at 86.36 69.85000000000001 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" + (at 86.36 66.04 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 86.36 66.04 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at 86.36 66.04 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "17de100d-bbcc-41e3-8aa8-3b98ba8edc83") + ) + (instances + (project "" + (path "/6dd3b1f9-22f6-4903-9fcc-e996b22e0fe8" + (reference "#FLG01") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:PWR_FLAG") + (at 78.74 78.74000000000001 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "92686b3e-204b-4575-82c3-c69647ebcf79") + (property "Reference" "#FLG02" + (at 78.74 76.2 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Value" "PWR_FLAG" + (at 78.74 82.55000000000001 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" + (at 78.74 78.74000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Datasheet" "" + (at 78.74 78.74000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (property "Description" "" + (at 78.74 78.74000000000001 0) + (effects (font (size 1.27 1.27)) (hide yes)) + ) + (pin "1" + (uuid "4d74220b-449b-43c3-999c-e696426c3292") + ) + (instances + (project "" + (path "/6dd3b1f9-22f6-4903-9fcc-e996b22e0fe8" + (reference "#FLG02") + (unit 1) + ) + ) + ) + ) + (sheet_instances + (path "/" + (page "1") + ) + ) + (embedded_fonts no) +) \ No newline at end of file