├── README.md ├── fluffbug-v8.2 ├── circuitpython │ ├── deps.txt │ ├── boot.py │ ├── settings.py │ ├── static │ │ └── index.html │ ├── main.py │ ├── web.py │ ├── robot.py │ └── walk.py ├── docs │ ├── step-01.png │ ├── step-02.png │ ├── step-03.png │ ├── step-04.png │ ├── step-05.png │ ├── blueprint.png │ ├── exploded.png │ ├── step-01t.png │ ├── step-02t.png │ ├── step-03t.png │ ├── step-04t.png │ ├── step-05t.png │ └── scad │ │ ├── step-02.scad │ │ ├── step-01.scad │ │ ├── step-03.scad │ │ ├── tibia.svg │ │ ├── step-05.scad │ │ ├── femur.svg │ │ ├── s2mini.svg │ │ ├── body.svg │ │ ├── coxa.svg │ │ └── fluffbug.scad ├── Gerber_PCB_fluffbug-v8.2.zip ├── BOM_fluffbug-v8.2_2023-01-29.csv ├── Schematic_fluffbug-v8.2_2023-01-29.pdf ├── 1-Schematic_fluffbug-v8.2.json └── fluffbug-v8.2-legs.svg ├── fluffbug-v1.0 ├── leg.fzz ├── fluffbug_v1.0.fzz ├── featherbug.svg └── fluffbug_leg.svg ├── fluffbug-v2.0 └── fluffbug_v2.0.fzz ├── fluffbug-v3.0 ├── fluffbug_v3.0.fzz └── fluffbug_legs_v3.svg ├── fluffbug-v4.0 └── fluffbug_v4.0.fzz ├── LICENSE ├── .gitignore └── ik └── main.py /README.md: -------------------------------------------------------------------------------- 1 | See https://hackaday.io/project/180025 2 | -------------------------------------------------------------------------------- /fluffbug-v8.2/circuitpython/deps.txt: -------------------------------------------------------------------------------- 1 | adafruit_httpserver 2 | asyncio 3 | adafruit_ticks 4 | -------------------------------------------------------------------------------- /fluffbug-v1.0/leg.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deshipu/fluffbug/HEAD/fluffbug-v1.0/leg.fzz -------------------------------------------------------------------------------- /fluffbug-v8.2/docs/step-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deshipu/fluffbug/HEAD/fluffbug-v8.2/docs/step-01.png -------------------------------------------------------------------------------- /fluffbug-v8.2/docs/step-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deshipu/fluffbug/HEAD/fluffbug-v8.2/docs/step-02.png -------------------------------------------------------------------------------- /fluffbug-v8.2/docs/step-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deshipu/fluffbug/HEAD/fluffbug-v8.2/docs/step-03.png -------------------------------------------------------------------------------- /fluffbug-v8.2/docs/step-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deshipu/fluffbug/HEAD/fluffbug-v8.2/docs/step-04.png -------------------------------------------------------------------------------- /fluffbug-v8.2/docs/step-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deshipu/fluffbug/HEAD/fluffbug-v8.2/docs/step-05.png -------------------------------------------------------------------------------- /fluffbug-v1.0/fluffbug_v1.0.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deshipu/fluffbug/HEAD/fluffbug-v1.0/fluffbug_v1.0.fzz -------------------------------------------------------------------------------- /fluffbug-v2.0/fluffbug_v2.0.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deshipu/fluffbug/HEAD/fluffbug-v2.0/fluffbug_v2.0.fzz -------------------------------------------------------------------------------- /fluffbug-v3.0/fluffbug_v3.0.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deshipu/fluffbug/HEAD/fluffbug-v3.0/fluffbug_v3.0.fzz -------------------------------------------------------------------------------- /fluffbug-v4.0/fluffbug_v4.0.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deshipu/fluffbug/HEAD/fluffbug-v4.0/fluffbug_v4.0.fzz -------------------------------------------------------------------------------- /fluffbug-v8.2/docs/blueprint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deshipu/fluffbug/HEAD/fluffbug-v8.2/docs/blueprint.png -------------------------------------------------------------------------------- /fluffbug-v8.2/docs/exploded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deshipu/fluffbug/HEAD/fluffbug-v8.2/docs/exploded.png -------------------------------------------------------------------------------- /fluffbug-v8.2/docs/step-01t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deshipu/fluffbug/HEAD/fluffbug-v8.2/docs/step-01t.png -------------------------------------------------------------------------------- /fluffbug-v8.2/docs/step-02t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deshipu/fluffbug/HEAD/fluffbug-v8.2/docs/step-02t.png -------------------------------------------------------------------------------- /fluffbug-v8.2/docs/step-03t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deshipu/fluffbug/HEAD/fluffbug-v8.2/docs/step-03t.png -------------------------------------------------------------------------------- /fluffbug-v8.2/docs/step-04t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deshipu/fluffbug/HEAD/fluffbug-v8.2/docs/step-04t.png -------------------------------------------------------------------------------- /fluffbug-v8.2/docs/step-05t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deshipu/fluffbug/HEAD/fluffbug-v8.2/docs/step-05t.png -------------------------------------------------------------------------------- /fluffbug-v8.2/circuitpython/boot.py: -------------------------------------------------------------------------------- 1 | import usb_hid 2 | import usb_midi 3 | 4 | usb_hid.disable() 5 | usb_midi.disable() 6 | -------------------------------------------------------------------------------- /fluffbug-v8.2/Gerber_PCB_fluffbug-v8.2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deshipu/fluffbug/HEAD/fluffbug-v8.2/Gerber_PCB_fluffbug-v8.2.zip -------------------------------------------------------------------------------- /fluffbug-v8.2/BOM_fluffbug-v8.2_2023-01-29.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deshipu/fluffbug/HEAD/fluffbug-v8.2/BOM_fluffbug-v8.2_2023-01-29.csv -------------------------------------------------------------------------------- /fluffbug-v8.2/Schematic_fluffbug-v8.2_2023-01-29.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deshipu/fluffbug/HEAD/fluffbug-v8.2/Schematic_fluffbug-v8.2_2023-01-29.pdf -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | (c) Copyright 2021 by Radomir Dopieralski. 2 | 3 | This work is licensed under a Creative Commons 4 | Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) License 5 | (http://creativecommons.org/licenses/by-sa/4.0/). 6 | -------------------------------------------------------------------------------- /fluffbug-v8.2/circuitpython/settings.py: -------------------------------------------------------------------------------- 1 | HIND_RIGHT_HIP = -200 2 | HIND_RIGHT_KNEE = -200 3 | HIND_LEFT_HIP = 350 4 | HIND_LEFT_KNEE = -100 5 | FRONT_RIGHT_HIP = 0 6 | FRONT_RIGHT_KNEE = 450 7 | FRONT_LEFT_HIP = -340 8 | FRONT_LEFT_KNEE = 100 9 | NET_NAME = "fluffbug-shirley" 10 | NET_PASS = "MooMooMooM00" 11 | -------------------------------------------------------------------------------- /fluffbug-v8.2/docs/scad/step-02.scad: -------------------------------------------------------------------------------- 1 | use ; 2 | 3 | $explode = 5; 4 | 5 | module leg() { 6 | rotate([180, 0, 0]) { 7 | translate([0, 0, -$explode]) SG90(); 8 | translate([0, 0, -7.9]) Tibia(); 9 | translate([0, 0, -$explode * 2]) { 10 | translate([0, 8.3, -8.5]) rotate([180, 0, 0]) SG90_mount_screw(); 11 | translate([0, -19.1, -8.5]) rotate([180, 0, 0]) SG90_mount_screw(); 12 | } 13 | }} 14 | 15 | 16 | leg(); 17 | -------------------------------------------------------------------------------- /fluffbug-v8.2/circuitpython/static/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Fluffbug 4 | 11 |
12 |
13 | 14 |
15 | 16 |
17 | -------------------------------------------------------------------------------- /fluffbug-v8.2/docs/scad/step-01.scad: -------------------------------------------------------------------------------- 1 | use ; 2 | 3 | $explode = 5; 4 | 5 | module leg() { 6 | translate([0, 0, -$explode]) { 7 | translate([0, 0, $explode]) SG90_single_horn(0); 8 | translate([-0.5, -0.25, 1.5]) Femur(); 9 | translate([10, 0, 1 + $explode * 2]) leg_screw(); 10 | translate([6, 0, 1 + $explode * 2]) leg_screw(); 11 | translate([35, 0, 2 - $explode * 2]) rotate([0, 180, 0]) leg_screw(); 12 | translate([31, 0, 2 - $explode * 2]) rotate([0, 180, 0]) leg_screw(); 13 | } 14 | translate([41, 0, 3]) rotate([180, 0, 0]) { 15 | translate([0, 0, $explode * 2]) SG90_single_horn(180); 16 | } 17 | } 18 | 19 | 20 | leg(); 21 | -------------------------------------------------------------------------------- /fluffbug-v8.2/circuitpython/main.py: -------------------------------------------------------------------------------- 1 | import robot 2 | import asyncio 3 | import time 4 | import walk 5 | import web 6 | import board 7 | import digitalio 8 | 9 | 10 | def calibrate(): 11 | led = digitalio.DigitalInOut(board.LED) 12 | led.switch_to_output(value=0) 13 | for leg in robot.LEGS: 14 | leg.move() 15 | led.value = not led.value 16 | time.sleep(0.25) 17 | led.value = True 18 | while True: 19 | time.sleep(1) 20 | 21 | 22 | async def main(): 23 | gait = walk.Walk() 24 | walk_task = asyncio.create_task(gait.walk()) 25 | web_task = asyncio.create_task(web.serve(gait)) 26 | await asyncio.gather(walk_task) 27 | 28 | 29 | #calibrate() 30 | 31 | asyncio.run(main()) 32 | -------------------------------------------------------------------------------- /fluffbug-v8.2/circuitpython/web.py: -------------------------------------------------------------------------------- 1 | import wifi 2 | import socketpool 3 | import time 4 | import asyncio 5 | 6 | from adafruit_httpserver import server, response 7 | import settings 8 | 9 | 10 | TICK = 0.25 11 | 12 | 13 | http = server.HTTPServer(socketpool.SocketPool(wifi.radio)) 14 | gait = None 15 | 16 | 17 | @http.route('/') 18 | def index(request): 19 | with response.HTTPResponse(request) as r: 20 | r.send_file("static/index.html") 21 | 22 | @http.route('/s') 23 | def s(request): 24 | gait.command = 's' 25 | 26 | @http.route('/f') 27 | def f(request): 28 | gait.command = 'f' 29 | 30 | @http.route('/l') 31 | def l(request): 32 | gait.command = 'l' 33 | 34 | @http.route('/r') 35 | def r(request): 36 | gait.command = 'r' 37 | 38 | async def serve(walk): 39 | global gait 40 | gait = walk 41 | name = settings.NET_NAME 42 | password = settings.NET_PASS 43 | wifi.radio.tx_power = 5 44 | wifi.radio.start_ap(name, password) 45 | address = str(wifi.radio.ipv4_address_ap) 46 | http.start(address, port=80, root_path='/static/') 47 | while True: 48 | http.poll() 49 | await asyncio.sleep(TICK) 50 | -------------------------------------------------------------------------------- /fluffbug-v8.2/docs/scad/step-03.scad: -------------------------------------------------------------------------------- 1 | use ; 2 | 3 | $explode = 5; 4 | 5 | module leg() { 6 | translate([-41, 0, 0]) { 7 | translate([41, 0, 3]) rotate([180, 0, 0]) { 8 | SG90(); 9 | translate([0, 0, $explode]) { 10 | translate([0, 8.3, -12.6]) SG90_mount_screw(); 11 | translate([0, -19.1, -12.6]) SG90_mount_screw(); 12 | } 13 | } 14 | } 15 | } 16 | 17 | module body() { 18 | translate([0, -25.4, -10.5]) rotate([90, 0, 90]) color("purple") { 19 | linear_extrude(height=1.6, center=true, convexity=10) 20 | import("body.svg"); 21 | } 22 | translate([-0.8, 0, 43]) rotate([90, 0, -90]) BatteryHolder(); 23 | translate([0.8, -10.16, 43.5]) color("dimgray") cube([3, 20.32, 5.08]); 24 | translate([0.8, -10.16, 25.72]) color("dimgray") cube([3, 20.32, 5.08]); 25 | translate([-2.8, -10.16-15.24, 25.72]) color("dimgray") cube([2, 15.24, 5.08]); 26 | translate([-2.8, -10.16+15.24+5.08, 25.72]) color("dimgray") cube([2, 15.24, 5.08]); 27 | rotate([90, 0, 0]) { 28 | translate([0, 0, -22.6-5.8-4]) { 29 | translate([-6.9, 0, -$explode]) leg(); 30 | translate([6.9, 0, -$explode]) mirror([1, 0, 0]) leg(); 31 | } 32 | translate([0, 0, 22.6+5.8+4]) mirror([0, 0, 1]) { 33 | translate([-6.9, 0, -$explode]) leg(); 34 | translate([6.9, 0, -$explode]) mirror([1, 0, 0]) leg(); 35 | } 36 | translate([-6.72, -8.7, -16]) rotate([180, 0, 0]) Coxa(); 37 | translate([-6.72, -8.7, 16]) rotate([180, 0, 0]) Coxa(); 38 | translate([-6.72, 19.7, -16]) Coxa(); 39 | translate([-6.72, 19.7, 16]) Coxa(); 40 | } 41 | } 42 | 43 | body(); 44 | -------------------------------------------------------------------------------- /fluffbug-v8.2/docs/scad/tibia.svg: -------------------------------------------------------------------------------- 1 | 2 | 15 | 17 | 18 | 20 | image/svg+xml 21 | 23 | 24 | 25 | 26 | 30 | 31 | -------------------------------------------------------------------------------- /fluffbug-v1.0/featherbug.svg: -------------------------------------------------------------------------------- 1 | 2 | 15 | 17 | 18 | 20 | 21 | image/svg+xml 22 | 24 | 25 | 26 | 27 | 29 | 33 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /fluffbug-v8.2/docs/scad/step-05.scad: -------------------------------------------------------------------------------- 1 | use ; 2 | 3 | $explode = 5; 4 | 5 | module servo(angle) { 6 | translate([0, 0, $explode * 2]) SG90_horn_screw(); 7 | translate([0, 0, $explode * 1]) SG90_single_horn(angle); 8 | SG90(); 9 | } 10 | 11 | module leg() { 12 | translate([-41, 0, 0]) { 13 | translate([0, 0, -0]) { 14 | translate([0, 0, -$explode * 2]) servo(0); 15 | translate([-0.5, -0.25, 1.5 - $explode]) Femur(); 16 | translate([10, 0, 1 - $explode]) leg_screw(); 17 | translate([6, 0, 1 - $explode]) leg_screw(); 18 | translate([35, 0, 2 - $explode]) rotate([0, 180, 0]) leg_screw(); 19 | translate([31, 0, 2 - $explode]) rotate([0, 180, 0]) leg_screw(); 20 | translate([0, 0, -7.9 -$explode * 2]) Tibia(); 21 | translate([0, 0, -$explode * 2]) { 22 | translate([0, 8.3, -8.5]) rotate([180, 0, 0]) SG90_mount_screw(); 23 | translate([0, -19.1, -8.5]) rotate([180, 0, 0]) SG90_mount_screw(); 24 | } 25 | } 26 | translate([41, 0, 3]) rotate([180, 0, 0]) { 27 | servo(180); 28 | translate([0, 0, 0]) { 29 | translate([0, 8.3, -12.6]) SG90_mount_screw(); 30 | translate([0, -19.1, -12.6]) SG90_mount_screw(); 31 | } 32 | } 33 | } 34 | } 35 | 36 | module body() { 37 | rotate([90, 0, 0]) { 38 | translate([0, 0, -22.6-5.8-4]) { 39 | translate([-6.9, 0, 0]) leg(); 40 | translate([6.9, 0, 0]) mirror([1, 0, 0]) leg(); 41 | } 42 | translate([0, 0, 22.6+5.8+4]) mirror([0, 0, 1]) { 43 | translate([-6.9, 0, 0]) leg(); 44 | translate([6.9, 0, 0]) mirror([1, 0, 0]) leg(); 45 | } 46 | translate([-6.72, -8.7, -16]) rotate([180, 0, 0]) Coxa(); 47 | translate([-6.72, -8.7, 16]) rotate([180, 0, 0]) Coxa(); 48 | translate([-6.72, 19.7, -16]) Coxa(); 49 | translate([-6.72, 19.7, 16]) Coxa(); 50 | } 51 | Body(); 52 | } 53 | 54 | body(); 55 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .env 106 | .venv 107 | env/ 108 | venv/ 109 | ENV/ 110 | env.bak/ 111 | venv.bak/ 112 | 113 | # Spyder project settings 114 | .spyderproject 115 | .spyproject 116 | 117 | # Rope project settings 118 | .ropeproject 119 | 120 | # mkdocs documentation 121 | /site 122 | 123 | # mypy 124 | .mypy_cache/ 125 | .dmypy.json 126 | dmypy.json 127 | 128 | # Pyre type checker 129 | .pyre/ 130 | -------------------------------------------------------------------------------- /ik/main.py: -------------------------------------------------------------------------------- 1 | import board 2 | import pwmio 3 | import time 4 | import math 5 | 6 | 7 | PI2 = 1.57079 8 | FEMUR = const(40) 9 | TIBIA = const(50) 10 | FEMUR2 = FEMUR * FEMUR 11 | TIBIA2 = TIBIA * TIBIA 12 | LENGTH2 = (TIBIA + FEMUR) * (TIBIA + FEMUR) 13 | 14 | 15 | class Leg: 16 | def __init__(self, hip_pin, hip_trim, knee_pin, knee_trim, reverse, hind): 17 | self.hip_pwm = pwmio.PWMOut(hip_pin, frequency=50) 18 | self.knee_pwm = pwmio.PWMOut(knee_pin, frequency=50) 19 | self.sign = -1 if reverse else 1 20 | self.hip_trim = hip_trim 21 | self.knee_trim = knee_trim 22 | self.hind = hind 23 | self.x = 0 24 | self.y = 0 25 | 26 | def off(self): 27 | self.hip_pin.duty_cycle = 0 28 | self.knee_pin.duty_cycle = 0 29 | 30 | def move(self, x=None, y=None, dx=0, dy=0): 31 | if x is None: 32 | x = self.x 33 | if y is None: 34 | y = self.y 35 | x += dx 36 | y += dy 37 | self.x = x 38 | self.y = y 39 | 40 | if self.hind: 41 | x = FEMUR + x 42 | else: 43 | x = FEMUR - x 44 | y = TIBIA - y 45 | 46 | leg_length2 = x * x + y * y 47 | leg_length = math.sqrt(leg_length2) 48 | 49 | if leg_length2 > LENGTH2: 50 | raise ValueError("Out of reach") 51 | 52 | hip_leg_angle = math.acos( 53 | (FEMUR2 + leg_length2 - TIBIA2) / 54 | (2 * FEMUR * leg_length) 55 | ) 56 | knee_angle = PI2 - math.acos( 57 | (FEMUR2 + TIBIA2 - leg_length2) / 58 | (2 * FEMUR * TIBIA) 59 | ) 60 | hip_base_angle = math.atan2(y, x) 61 | self.angles(hip_base_angle - hip_leg_angle, knee_angle) 62 | 63 | def angles(self, hip_angle, knee_angle): 64 | if not -PI2 < hip_angle < PI2 or not -PI2 < knee_angle < PI2: 65 | raise ValueError("Bad angle") 66 | self.hip_pwm.duty_cycle = (self.hip_trim + 67 | int(1980 * hip_angle) * self.sign) 68 | self.knee_pwm.duty_cycle = (self.knee_trim + 69 | int(1980 * knee_angle) * self.sign) 70 | 71 | 72 | LEGS = ( 73 | Leg(board.A4, 4915 + 300, board.A3, 4915 + 100, False, True), # hind right 74 | Leg(board.TX, 4915 + 300, board.D5, 4915 + 100, True, True), # hind left 75 | Leg(board.A1, 4915 + 100, board.D6, 4915 + 200, True, False), # front right 76 | Leg(board.A6, 4915 + 300, board.RX, 4915 + 200, False, False), # front left 77 | ) 78 | 79 | 80 | for leg in LEGS: 81 | leg.move() 82 | time.sleep(0.25) 83 | while True: 84 | time.sleep(1) 85 | 86 | for h in range(0, 20): 87 | for leg in LEGS: 88 | leg.move(h, 0) 89 | time.sleep(0.25) 90 | for h in range(20, 0, -1): 91 | for leg in LEGS: 92 | leg.move(h, 0) 93 | time.sleep(0.25) 94 | 95 | while True: 96 | time.sleep(1) 97 | -------------------------------------------------------------------------------- /fluffbug-v8.2/circuitpython/robot.py: -------------------------------------------------------------------------------- 1 | import board 2 | import pwmio 3 | import math 4 | import settings 5 | 6 | 7 | PI2 = 1.57079 8 | FEMUR = const(40) 9 | TIBIA = const(50) 10 | FEMUR2 = FEMUR * FEMUR 11 | TIBIA2 = TIBIA * TIBIA 12 | LENGTH2 = (TIBIA + FEMUR) * (TIBIA + FEMUR) 13 | 14 | 15 | class Servo: 16 | def __init__(self, pin, center=6200): 17 | self.pwm = pwmio.PWMOut(pin, frequency=60) 18 | if center >= 0: 19 | self.center = center 20 | self.reverse = False 21 | else: 22 | self.center = -center 23 | self.reverse = True 24 | 25 | def move(self, radians): 26 | if self.reverse: 27 | radians = -radians 28 | # Compensate for the asymmetry in the servo motion. 29 | if radians > 0: 30 | us_per_radian = 2300 31 | else: 32 | us_per_radian = 2600 33 | self.pwm.duty_cycle = self.center + int(radians * us_per_radian) 34 | 35 | def off(self): 36 | self.pwm.duty_cycle = 0 37 | 38 | 39 | class Leg: 40 | def __init__(self, hip, knee, hind, left): 41 | self.hip = hip 42 | self.knee = knee 43 | self.hind = hind 44 | self.left = left 45 | self.x = 0 46 | self.y = 0 47 | 48 | def off(self): 49 | self.hip.off() 50 | self.knee.off() 51 | 52 | def ik(self, x, y): 53 | if self.hind: 54 | x = FEMUR + x 55 | else: 56 | x = FEMUR - x 57 | y = TIBIA - y 58 | 59 | leg_length2 = x * x + y * y 60 | leg_length = math.sqrt(leg_length2) 61 | 62 | if leg_length2 > LENGTH2: 63 | raise ValueError("Out of reach") 64 | 65 | hip_leg_angle = math.acos( 66 | (FEMUR2 + leg_length2 - TIBIA2) / 67 | (2 * FEMUR * leg_length) 68 | ) 69 | knee_angle = PI2 - math.acos( 70 | (FEMUR2 + TIBIA2 - leg_length2) / 71 | (2 * FEMUR * TIBIA) 72 | ) 73 | hip_base_angle = math.atan2(y, x) 74 | if math.isnan(hip_leg_angle) or math.isnan(knee_angle): 75 | raise ValueError("Bad angle") 76 | return hip_base_angle - hip_leg_angle, knee_angle 77 | 78 | def move(self, x=None, y=None, dx=0, dy=0): 79 | if x is None: 80 | x = self.x 81 | if y is None: 82 | y = self.y 83 | x += dx 84 | y += dy 85 | hip, knee = self.ik(x, y) 86 | self.angles(hip, knee) 87 | self.x = x 88 | self.y = y 89 | 90 | def angles(self, hip_angle, knee_angle): 91 | self.hip.move(hip_angle) 92 | self.knee.move(knee_angle) 93 | 94 | #C = 4915 # for 50Hz 95 | C = 6200 # for 60Hz 96 | LEGS = ( 97 | Leg(Servo(board.IO1, C + settings.HIND_RIGHT_HIP), 98 | Servo(board.IO4, C + settings.HIND_RIGHT_KNEE), 99 | True, False), 100 | Leg(Servo(board.IO14, -C + settings.HIND_LEFT_HIP), 101 | Servo(board.IO10, -C + settings.HIND_LEFT_KNEE), 102 | True, True), 103 | Leg(Servo(board.IO2, -C + settings.FRONT_RIGHT_HIP), 104 | Servo(board.IO6, -C + settings.FRONT_RIGHT_KNEE), 105 | False, False), 106 | Leg(Servo(board.IO13, C + settings.FRONT_LEFT_HIP), 107 | Servo(board.IO8, C + settings.FRONT_LEFT_KNEE), 108 | False, True), 109 | ) 110 | -------------------------------------------------------------------------------- /fluffbug-v8.2/docs/scad/femur.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 20 | 38 | 40 | 41 | 43 | image/svg+xml 44 | 46 | 47 | 48 | 49 | 53 | 54 | -------------------------------------------------------------------------------- /fluffbug-v8.2/circuitpython/walk.py: -------------------------------------------------------------------------------- 1 | import robot 2 | import asyncio 3 | 4 | 5 | HEIGHT = 20 6 | WALK_ORDER = (2, 3, 1, 0) 7 | #WALK_ORDER = (2, 0, 3, 1) 8 | LEFT_ORDER = (1, 3, 0, 2) 9 | RIGHT_ORDER = (2, 0, 3, 1) 10 | TICK = 0.04 11 | LEG_TILT = (1, -1, 1, -1) 12 | 13 | 14 | class Walk: 15 | def __init__(self): 16 | self.on_ground = set(robot.LEGS) 17 | self.speed_left = 2.0 18 | self.speed_right = 2.0 19 | self.leg_order = WALK_ORDER 20 | self.command = None 21 | 22 | def do_command(self): 23 | if self.command is None: 24 | return 25 | elif self.command == 'f': 26 | self.speed_left = 2.0 27 | self.speed_right = 2.0 28 | self.leg_order = WALK_ORDER 29 | elif self.command == 's': 30 | self.speed_left = 0 31 | self.speed_right = 0 32 | elif self.command == 'r': 33 | self.speed_left = -1.0 34 | self.speed_right = 1.0 35 | self.leg_order = RIGHT_ORDER 36 | elif self.command == 'l': 37 | self.speed_left = 1.0 38 | self.speed_right = -1.0 39 | self.leg_order = LEFT_ORDER 40 | self.command = None 41 | 42 | async def init(self): 43 | for leg in robot.LEGS: 44 | leg.move(y=HEIGHT) 45 | await asyncio.sleep(TICK) 46 | 47 | async def slide(self): 48 | while True: 49 | stop = False 50 | for leg in self.on_ground: 51 | if leg.x > 40: 52 | stop = True 53 | break 54 | if not stop: 55 | for leg in self.on_ground: 56 | try: 57 | if leg.left: 58 | leg.move(dx=self.speed_left) 59 | else: 60 | leg.move(dx=self.speed_right) 61 | except ValueError: 62 | break 63 | await asyncio.sleep(TICK) 64 | 65 | async def do_tilt(self, tilt): 66 | tilt = tilt * 3 67 | for step in range(0, 3): 68 | try: 69 | robot.LEGS[0].move(y=HEIGHT + tilt * step) 70 | robot.LEGS[1].move(y=HEIGHT - tilt * step) 71 | robot.LEGS[2].move(y=HEIGHT + tilt * step) 72 | robot.LEGS[3].move(y=HEIGHT - tilt * step) 73 | except ValueError: 74 | break 75 | await asyncio.sleep(TICK) 76 | 77 | async def do_step(self, leg): 78 | speed = self.speed_left if leg.left else self.speed_right 79 | leg.move(dy=10) 80 | self.on_ground.discard(leg) 81 | await asyncio.sleep(TICK) 82 | leg.move(dy=10) 83 | await asyncio.sleep(TICK) 84 | leg.move(x=speed * 6) 85 | await asyncio.sleep(TICK) 86 | leg.move(x=-speed * 2) 87 | await asyncio.sleep(TICK) 88 | leg.move(x=-speed * 14) 89 | await asyncio.sleep(TICK) 90 | leg.move(x=-speed * 16) 91 | await asyncio.sleep(TICK) 92 | await asyncio.sleep(TICK) 93 | leg.move(dy=-20) 94 | await asyncio.sleep(TICK) 95 | self.on_ground.add(leg) 96 | 97 | async def creep(self): 98 | leg_number = 0 99 | tilt = -LEG_TILT[leg_number] 100 | while True: 101 | prev_tilt = tilt 102 | self.do_command() 103 | if self.speed_left == 0 and self.speed_right == 0: 104 | tilt = 0 105 | if tilt != prev_tilt: 106 | await self.do_tilt(tilt) 107 | await asyncio.sleep(TICK) 108 | continue 109 | leg_number = self.leg_order[leg_number] 110 | leg = robot.LEGS[leg_number] 111 | tilt = -LEG_TILT[leg_number] 112 | if tilt != prev_tilt: 113 | await self.do_tilt(tilt) 114 | await self.do_step(leg) 115 | 116 | async def walk(self): 117 | await self.init() 118 | creep_task = asyncio.create_task(self.creep()) 119 | slide_task = asyncio.create_task(self.slide()) 120 | await asyncio.gather(creep_task, slide_task) 121 | -------------------------------------------------------------------------------- /fluffbug-v8.2/docs/scad/s2mini.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 21 | 23 | 24 | 26 | image/svg+xml 27 | 29 | 30 | 31 | 32 | 34 | 66 | 71 | 76 | 81 | 86 | 91 | 96 | 101 | 106 | 111 | 116 | 121 | 126 | 131 | 136 | 141 | 146 | 150 | 154 | 158 | 162 | 163 | 169 | 170 | -------------------------------------------------------------------------------- /fluffbug-v8.2/docs/scad/body.svg: -------------------------------------------------------------------------------- 1 | 2 | 19 | 49 | 54 | 59 | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 153 | 155 | 156 | 158 | image/svg+xml 159 | 161 | 162 | 163 | 164 | 166 | 169 | 174 | 175 | 176 | -------------------------------------------------------------------------------- /fluffbug-v1.0/fluffbug_leg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 21 | 23 | 24 | 26 | 27 | image/svg+xml 28 | 30 | 31 | 32 | 33 | 35 | 43 | 49 | 50 | 58 | 64 | 65 | 73 | 79 | 80 | 88 | 94 | 95 | 97 | 99 | 101 | 103 | 105 | 107 | 109 | 111 | 113 | 115 | 117 | 119 | 121 | 123 | 125 | 127 | 129 | 131 | 133 | 135 | 137 | 138 | 171 | 176 | 181 | 186 | 191 | 196 | 197 | 200 | 207 | 208 | 209 | -------------------------------------------------------------------------------- /fluffbug-v8.2/docs/scad/coxa.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 21 | 23 | 24 | 26 | image/svg+xml 27 | 29 | 30 | 31 | 32 | 34 | 42 | 47 | 48 | 56 | 61 | 62 | 70 | 75 | 76 | 84 | 89 | 90 | 92 | 94 | 96 | 98 | 100 | 102 | 104 | 106 | 108 | 110 | 112 | 114 | 116 | 118 | 120 | 122 | 124 | 126 | 128 | 130 | 132 | 133 | 168 | 172 | 176 | 180 | 184 | 188 | 192 | 196 | 201 | 206 | 211 | 216 | 221 | 225 | 229 | 234 | 238 | 242 | 246 | 250 | 256 | 257 | -------------------------------------------------------------------------------- /fluffbug-v8.2/docs/scad/fluffbug.scad: -------------------------------------------------------------------------------- 1 | $explode = cos(180 + $t * 360) * 10 + 10; 2 | 3 | 4 | module SG90_horn_screw() { 5 | color("DarkGray") union() { 6 | translate([0, 0, 3.4]) difference() { 7 | union() { 8 | cylinder(r=1.3, h=0.9, $fn=8); 9 | translate([0, 0, -4.4]) cylinder(r1=0.25, r2=0.8, h=5, $fn=8); 10 | } 11 | translate([-0.25, -1, 0.4]) cube([0.5, 2, 1]); 12 | translate([1, -0.25, 0.4]) rotate(90) cube([0.5, 2, 1]); 13 | } 14 | } 15 | } 16 | 17 | module SG90_mount_screw() { 18 | color("DarkGray") union() { 19 | translate([0, 0, 3.4]) difference() { 20 | union() { 21 | cylinder(r=1.4, h=0.9, $fn=8); 22 | translate([0, 0, -7.4]) cylinder(r1=0.25, r2=0.8, h=8, $fn=8); 23 | cylinder(r=1.8, h=0.2, $fn=8); 24 | } 25 | translate([-0.25, -1, 0.4]) cube([0.5, 2, 1]); 26 | translate([1, -0.25, 0.4]) rotate(90) cube([0.5, 2, 1]); 27 | } 28 | } 29 | } 30 | 31 | module leg_screw() { 32 | color("black") union() { 33 | translate([0, 0, 3.4]) difference() { 34 | union() { 35 | cylinder(r=1, h=0.5, $fn=6); 36 | translate([0, 0, -3.5]) cylinder(r1=0.2, r2=0.6, h=3.5, $fn=4); 37 | } 38 | } 39 | } 40 | } 41 | 42 | module SG90() { 43 | servo_height = 22.6; 44 | servo_width = 12.2; 45 | servo_depth = 22.8; 46 | servo_ear_depth = 4.8; 47 | servo_big_tip_r = 6.05; 48 | 49 | translate([-6.0, -16.9, -servo_height - 5.8 - 1]) union() { 50 | color("darkslateblue", 0.75) union () { 51 | cube([servo_width, servo_depth, servo_height]); 52 | translate([0, -4.8, 17.6]) { 53 | difference () { 54 | cube([12.0, 32.3, 2.4]); 55 | translate([6.0, 1.5, -0.1]) cylinder(r=2, h=2.6, $fn=10); 56 | translate([6.0, 30.8, -0.1]) cylinder(r=2, h=2.6, $fn=10); 57 | } 58 | } 59 | translate([6.0, 16.9, servo_height]) { 60 | cylinder(r=servo_big_tip_r, h=5.8, $fn=20); 61 | } 62 | translate([6.0, 16.9 - servo_big_tip_r, servo_height]) { 63 | cylinder(r=2.75, h=5.8, $fn=10); 64 | } 65 | } 66 | color("Snow") translate([6.0, 16.9, servo_height + 5.8]) difference() { 67 | cylinder(r=2.275, h=3.9, $fn=6); 68 | cylinder(r=0.8, h=5, $fn=10); 69 | } 70 | } 71 | translate([1, -10, -25]) rotate([0, 90, 90]) { 72 | color("Orange") translate([1.27, 0, 12]) cylinder(r1=0.75, r2=0, h=20); 73 | color("Red") translate([1.27, 1, 12]) cylinder(r1=0.75, r2=0, h=20); 74 | color("Brown") translate([1.27, 2, 12]) cylinder(r1=0.75, r2=0, h=20); 75 | } 76 | } 77 | 78 | module _SG90_horn_arm() { 79 | difference() { 80 | translate([13.8, 0, 3.1]) { 81 | cylinder(r=1.85, h=1.3, $fn=10); 82 | translate([0,-2,0]) rotate([0,0,94]) { 83 | cube([4, 13.8, 1.3]); 84 | } 85 | translate([0,-2,0]) rotate([0,0,86]) { 86 | cube([4, 13.8, 1.3]); 87 | } 88 | } 89 | for(i=[0:5]) { 90 | translate([13.8 - i * 2,0,0]) { 91 | cylinder(r=0.6, h=8, $fn=8); 92 | } 93 | } 94 | } 95 | } 96 | 97 | module SG90_single_horn(angle) { 98 | rotate(angle) color("dimgray") { 99 | difference() { 100 | union() { 101 | cylinder(r=3.3, h=4.4, $fn=20); 102 | _SG90_horn_arm(); 103 | } 104 | translate([0,0,-1]) { 105 | cylinder(r=2.275, h=3.2, $fn=6); 106 | cylinder(r=1, h=8, $fn=10); 107 | translate([0, 0, 4.4]) cylinder(r=2.35, h=2, $fn=10); 108 | } 109 | } 110 | } 111 | } 112 | 113 | module S2Mini() { 114 | translate([0, -16.365, -11.12]) { 115 | rotate([90, 0, 90]) color("darkmagenta") { 116 | linear_extrude(height=0.6, center=true, convexity=10) 117 | import("s2mini.svg"); 118 | } 119 | color("black") { 120 | translate([-3.3, 5.16, 0.8]) cube([3, 20.32, 5.08]); 121 | translate([-3.3, 5.16, 18.6]) cube([3, 20.32, 5.08]); 122 | } 123 | color("silver") hull() { 124 | translate([1.75, 25, 15]) rotate([0, 90, 90]) cylinder(r=1.5, h=7.5, $fn=12); 125 | translate([1.75, 25, 9]) rotate([0, 90, 90]) cylinder(r=1.5, h=7.5, $fn=12); 126 | } 127 | color("black") translate([0, 10, 10]) cube([0.5, 7, 7]); 128 | for (i=[0:1]) 129 | translate([-5.7, 6.43, 19.87 - 2.54 * i * 7]) for(x=[0:7]) for(y=[0:1]) { 130 | translate([0, x * 2.54, y * 2.54]) { 131 | color("gold") cube([12.7, 0.5, 0.5]); 132 | color("silver") translate([5.3, 0.25, 0.25]) rotate([0, 90, 0]) cylinder(r=1.27, h=0.8, $fn=8); 133 | } 134 | } 135 | } 136 | } 137 | 138 | module Femur() { 139 | color("silver", 0.5) { 140 | translate([-5.41, -5.67]) 141 | linear_extrude(height=3, center=true, convexity=10) 142 | import("femur.svg"); 143 | } 144 | } 145 | 146 | module Tibia() { 147 | color("silver", 0.5) { 148 | translate([-8.948, -52.5]) 149 | linear_extrude(height=3, center=true, convexity=10) 150 | import("tibia.svg"); 151 | } 152 | } 153 | module Coxa() { 154 | color("silver", 0.5) { 155 | translate([-5.88, -2.65]) 156 | linear_extrude(height=3, center=true, convexity=10) 157 | import("coxa.svg"); 158 | } 159 | } 160 | 161 | module Servo(angle) { 162 | translate([0, 0, $explode * 3]) SG90_horn_screw(); 163 | translate([0, 0, $explode * 2]) SG90_single_horn(angle); 164 | SG90(); 165 | } 166 | 167 | module Leg(hip=0, knee=0) { 168 | translate([-41, 0, 0]) { 169 | translate([41, 0, 3 - $explode]) rotate(-hip) translate([-41, 0, -3]) { 170 | translate([0, 0, -$explode]) rotate(-knee) Servo(knee); 171 | translate([-0.5, -0.25, 1.5]) Femur(); 172 | translate([10, 0, 1 + $explode * 2]) leg_screw(); 173 | translate([6, 0, 1 + $explode * 2]) leg_screw(); 174 | translate([35, 0, 2 - $explode * 2]) rotate([0, 180, 0]) leg_screw(); 175 | translate([31, 0, 2 - $explode * 2]) rotate([0, 180, 0]) leg_screw(); 176 | rotate(-knee) { 177 | translate([0, 0, -7.9]) Tibia(); 178 | translate([0, 0, -$explode * 2]) { 179 | translate([0, 8.3, -8.5]) rotate([180, 0, 0]) SG90_mount_screw(); 180 | translate([0, -19.1, -8.5]) rotate([180, 0, 0]) SG90_mount_screw(); 181 | } 182 | } 183 | } 184 | translate([41, 0, 3]) rotate([180, 0, 0]) { 185 | Servo(180 + hip); 186 | translate([0, 0, $explode]) { 187 | translate([0, 8.3, -12.6]) SG90_mount_screw(); 188 | translate([0, -19.1, -12.6]) SG90_mount_screw(); 189 | } 190 | } 191 | } 192 | } 193 | 194 | module BatteryHolder() { 195 | translate([-21.465, -9.145, 0]) color("dimgray") { 196 | cube([4.13, 18.29, 15.24]); 197 | translate([4.13, 0, 0]) cube([34.67, 18.29, 8]); 198 | translate([42.93 - 4.13, 0, 0]) cube([4.13, 18.29, 15.24]); 199 | } 200 | } 201 | 202 | module Battery() { 203 | color("mediumpurple") { 204 | translate([-16.5, 0, 10]) rotate([0, 90, 0]) cylinder(r=8.5, h=33, $fn=20); 205 | } 206 | } 207 | 208 | module IDCPlug2x6() { 209 | color("black") translate([-12, 0, 0]) cube([12, 15.24, 5.08]); 210 | } 211 | 212 | module Body() { 213 | translate([0, -25.4, -10.5]) rotate([90, 0, 90]) color("purple") { 214 | linear_extrude(height=1.6, center=true, convexity=10) 215 | import("body.svg"); 216 | } 217 | translate([-0.8, 0, 43]) rotate([90, 0, -90]) BatteryHolder(); 218 | translate([0.8, -10.16, 43.5]) color("dimgray") cube([3, 20.32, 5.08]); 219 | translate([0.8, -10.16, 25.72]) color("dimgray") cube([3, 20.32, 5.08]); 220 | translate([-2.8, -10.16-15.24, 25.72]) color("dimgray") cube([2, 15.24, 5.08]); 221 | translate([-2.8, -10.16+15.24+5.08, 25.72]) color("dimgray") cube([2, 15.24, 5.08]); 222 | } 223 | 224 | 225 | module Robot() { 226 | rotate([90, 0, 0]) { 227 | translate([0, 0, -22.6-5.8-4]) { 228 | translate([-6.9, 0, -$explode]) Leg(); 229 | translate([6.9, 0, -$explode]) mirror([1, 0, 0]) Leg(); 230 | } 231 | translate([0, 0, 22.6+5.8+4]) mirror([0, 0, 1]) { 232 | translate([-6.9, 0, -$explode]) Leg(); 233 | translate([6.9, 0, -$explode]) mirror([1, 0, 0]) Leg(); 234 | } 235 | translate([-6.72, -8.7 - $explode, -16]) rotate([180, 0, 0]) Coxa(); 236 | translate([-6.72, -8.7 - $explode, 16]) rotate([180, 0, 0]) Coxa(); 237 | translate([-6.72 + $explode, 19.7, -16]) Coxa(); 238 | translate([-6.72 + $explode, 19.7, 16]) Coxa(); 239 | } 240 | Body(); 241 | translate([-0.8 - $explode, 0, 43]) rotate([90, 0, -90]) Battery(); 242 | translate([-2.8 - $explode, -10.16+15.24+5.08, 25.72]) IDCPlug2x6(); 243 | translate([-2.8 - $explode, -10.16-15.24, 25.72]) IDCPlug2x6(); 244 | translate([7 + $explode, 1, 36]) S2Mini(); 245 | } 246 | 247 | Robot(); 248 | 249 | -------------------------------------------------------------------------------- /fluffbug-v3.0/fluffbug_legs_v3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 21 | 23 | 24 | 26 | 27 | image/svg+xml 28 | 30 | 31 | 32 | 33 | 35 | 43 | 48 | 49 | 57 | 62 | 63 | 71 | 76 | 77 | 85 | 90 | 91 | 93 | 95 | 97 | 99 | 101 | 103 | 105 | 107 | 109 | 111 | 113 | 115 | 117 | 119 | 121 | 123 | 125 | 127 | 129 | 131 | 133 | 134 | 166 | 172 | 178 | 182 | 186 | 190 | 194 | 198 | 202 | 206 | 211 | 216 | 221 | 226 | 231 | 235 | 239 | 244 | 248 | 252 | 256 | 260 | 266 | 272 | 277 | 282 | 287 | 23mm 299 | 305 | 311 | 317 | 323 | 329 | 332 | 338 | 344 | 350 | 351 | 357 | 363 | 369 | 370 | -------------------------------------------------------------------------------- /fluffbug-v8.2/1-Schematic_fluffbug-v8.2.json: -------------------------------------------------------------------------------- 1 | {"schematics":[{"docType":1,"title":"Sheet_1","dataStr":{"head":{"docType":"1","editorVersion":"6.5.22","newgId":true,"c_para":{"Prefix Start":"1"},"c_spiceCmd":"null","hasIdFlag":true,"uuid":"00633cecc67e497d9dbe4c12668a928a","x":"0","y":"0","portOfADImportHack":"","importFlag":0,"transformList":""},"canvas":"CA~1000~1000~#FFFFFF~yes~#CCCCCC~5~1000~1000~line~5~pixel~5~0~0","shape":["LIB~0~-806~package`NONE`BOM_Manufacturer Part`?`spicePre`.`~~0~frame_lib_1~~~0~~yes~yes~~~#@$T~N~571~-809~0~#880000~Arial~~~~~comment~A~0~start~gge223~0~#@$PT~M 206 -796 L 206 -806 M 206 -10 L 206 0 M 402 -796 L 402 -806 M 402 -10 L 402 0 M 598 -796 L 598 -806 M 598 -10 L 598 0 M 794 -796 L 794 -806 M 794 -10 L 794 0 M 990 -796 L 990 -806 M 990 -10 L 990 0 M 10 -600 L 0 -600 M 1139 -600 L 1149 -600 M 10 -404 L 0 -404 M 1139 -404 L 1149 -404 M 10 -208 L 0 -208 M 1139 -208 L 1149 -208 M 10 -12 L 0 -12 M 1139 -12 L 1149 -12~#880000~1~0~none~gge10~0~frame_tick#@$T~P~571~-818~0~#880000~Arial~~~~~comment~A~0~start~gge220~0~#@$T~L~1.5~-698~0~#880000~~~~~~comment~A~1~start~gge13~0~frame_tick#@$T~L~1140.5~-698~0~#880000~~~~~~comment~A~1~start~gge19~0~frame_tick#@$T~L~1.5~-502~0~#880000~~~~~~comment~B~1~start~gge25~0~frame_tick#@$T~L~1140.5~-502~0~#880000~~~~~~comment~B~1~start~gge31~0~frame_tick#@$T~L~1.5~-306~0~#880000~~~~~~comment~C~1~start~gge37~0~frame_tick#@$T~L~1140.5~-306~0~#880000~~~~~~comment~C~1~start~gge43~0~frame_tick#@$T~L~1.5~-110~0~#880000~~~~~~comment~D~1~start~gge49~0~frame_tick#@$T~L~1140.5~-110~0~#880000~~~~~~comment~D~1~start~gge55~0~frame_tick#@$T~L~108~-797.5~0~#880000~~~~~~comment~1~1~start~gge61~0~frame_tick#@$T~L~108~-1.5~0~#880000~~~~~~comment~1~1~start~gge67~0~frame_tick#@$T~L~304~-797.5~0~#880000~~~~~~comment~2~1~start~gge73~0~frame_tick#@$T~L~304~-1.5~0~#880000~~~~~~comment~2~1~start~gge79~0~frame_tick#@$T~L~500~-797.5~0~#880000~~~~~~comment~3~1~start~gge85~0~frame_tick#@$T~L~500~-1.5~0~#880000~~~~~~comment~3~1~start~gge91~0~frame_tick#@$T~L~696~-797.5~0~#880000~~~~~~comment~4~1~start~gge97~0~frame_tick#@$T~L~696~-1.5~0~#880000~~~~~~comment~4~1~start~gge103~0~frame_tick#@$T~L~892~-797.5~0~#880000~~~~~~comment~5~1~start~gge109~0~frame_tick#@$T~L~892~-1.5~0~#880000~~~~~~comment~5~1~start~gge115~0~frame_tick#@$R~10~-796~~~1129~786~#880000~1~0~none~gge121~0~frame_innerbox#@$R~0~-806~~~1149~806~#880000~1~0~none~gge124~0~frame_outbox#@$R~694.99995~-90~~~444~80~#880000~1~0~none~gge127~0~frame_hitarea#@$PL~695.1 -50.75 1138.63 -50.75~#880000~1~0~none~gge130~0#@$PL~799.63 -30.75 1138.63 -30.75~#880000~1~0~none~gge133~0#@$PL~1059.61 -89.93 1059.63 -50.75~#880000~1~0~none~gge136~0#@$PL~1059.63 -50.75 1059.63 -30.75~#880000~1~0~none~gge139~0#@$T~L~699.99995~-77~0~#880000~~8pt~~~~comment~TITLE:~1~start~gge142~0~pinpart#@$T~L~757.62495~-64.41~0~#880000~~10pt~~~~comment~Sheet_1~1~start~gge148~0~frame_title#@$T~L~1064.62495~-63.75~0~#880000~~8pt~~~~comment~REV:~1~start~gge154~0~pinpart#@$T~L~1102.62495~-63.75~0~#880000~~9pt~~~~comment~1.0~1~start~gge160~0~frame_version#@$T~L~804.62495~-15~0~#880000~~8pt~~~~comment~Date:~1~start~gge166~0~pinpart#@$T~L~851.62495~-14.52~0~#880000~~9pt~~~~comment~2022-09-29~1~start~gge172~0~frame_date#@$T~L~1063.62495~-35~0~#880000~~8pt~~~~comment~Sheet:~1~start~gge178~0~pinpart#@$T~L~1108.62495~-34.52~0~#880000~~9pt~~~~comment~1\/1~1~start~gge184~0~frame_sheet#@$T~L~943.62495~-14.75~0~#880000~~8pt~~~~comment~Drawn By:~1~start~gge190~0~pinpart#@$T~L~1008.63~-14.75~0~#880000~~9pt~~~~comment~deshipu~1~start~gge196~0~frame_drawn#@$T~L~804.62495~-36.75~0~#880000~~8pt~~~~comment~Company:~1~start~gge202~0~pinpart#@$T~L~871.24995~-36.64~0~#880000~~9pt~~~~comment~Your Company~1~start~gge208~0~frame_company#@$PL~799.63 -50.75 799.63 -10.75~#880000~1~0~none~gge214~0#@$Pimage~L~1~gge217~0~gge229~693~-46.5~110~35~data:image\/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSkxDRURBIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDIwMDAgNjI5IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6IG5ldyAwIDAgMjAwMCA2Mjk7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCgk8cmVjdCBzdHlsZT0iZGlzcGxheTogbm9uZTsgZmlsbDogI0ZGRkZGRjsiIHdpZHRoPSIyMDAwIiBoZWlnaHQ9IjYyOSIgLz4NCgk8cmVjdCB4PSIyMjk4IiB5PSItNjc2IiBzdHlsZT0iZGlzcGxheTogbm9uZTsgZmlsbDogI0ZGRkZGRjsiIHdpZHRoPSIyMDAwIiBoZWlnaHQ9IjIwMDAiIC8+DQoJPGRlc2M+Q3JlYXRlZCBieSBYaWFvWGkoYWRtaW5Ac29yYWhhcnUuY29tKS48L2Rlc2M+DQoJPGc+DQoJCTxwYXRoIHN0eWxlPSJmaWxsOiAjNTU4OEZGOyIgZD0iTTE0NzQuNSwxODguN2MtMC4zLDAtMTE4LjMsMC0xMTguMywwbC0zMCwyMTkuM2gxMjMuN2wwLDBjMTAuNC0wLjIsMTguOC04LjcsMTguOC0xOS4xDQoJCQljMC0xMC42LTguNi0xOS4xLTE5LjEtMTkuMWMtMC40LDAtNzYuNywwLjEtNzYuNywwLjFsOC4xLTU4LjFjMCwwLDc4LjMsMC4xLDc5LDAuMWMxMC43LDAsMTkuNC04LjcsMTkuNC0xOS40DQoJCQljMC05LjYtNy0xNy42LTE2LjItMTkuMWgtNzYuOWw2LjMtNDUuNWMwLDAsODEuNS0wLjEsODItMC4xYzEwLjcsMCwxOS40LTguNywxOS40LTE5LjRDMTQ5My45LDE5Ny40LDE0ODUuMiwxODguNywxNDc0LjUsMTg4Ljd6IiAvPg0KCQk8cGF0aCBzdHlsZT0iZmlsbDogIzU1ODhGRjsiIGQ9Ik0xNjg4LjksMjkzLjhjMC0yMS42LTUtNDAuNi0xNC45LTU3LjFjLTkuOS0xNi41LTIyLjktMjguNi0zOC44LTM2LjMNCgkJCWMtMTUuOS03LjctNDAuMS0xMS41LTcyLjctMTEuNWgtMzQuN2wtMzAsMjE5LjNoNjguMmMyOC42LDAsNTAuOS00LjMsNjctMTIuOGMxNi4xLTguNSwyOS41LTIyLDQwLTQwLjUNCgkJCUMxNjgzLjcsMzM2LjIsMTY4OC45LDMxNS44LDE2ODguOSwyOTMuOHogTTE2MzUsMzM5Yy03LjksMTIuMS0xOC40LDIwLjYtMzEuNiwyNS41Yy05LjMsMy40LTI0LjQsNS4zLTQ1LjMsNS4zaC0xMy42bDE5LjMtMTQyLjMNCgkJCWgxMC4zYzE2LjksMCwzMC40LDIuNiw0MC42LDhjMTAuMSw1LjQsMTgsMTIuOSwyMy42LDIyLjdjNS42LDkuOCw4LjQsMjIsOC40LDM2LjVDMTY0Ni45LDMxMi4yLDE2NDIuOSwzMjcsMTYzNSwzMzl6IiAvPg0KCQk8cGF0aCBzdHlsZT0iZmlsbDogIzU1ODhGRjsiIGQ9Ik0xODQ2LjksMjkxLjRsLTI0LDEzLjJjLTIsMTcuMy0xNi43LDMwLjktMzQuNiwzMC45Yy0xOS4yLDAtMzQuOC0xNS42LTM0LjgtMzQuOA0KCQkJYzAtMTkuMiwxNS42LTM0LjgsMzQuOC0zNC44YzcuNCwwLDE0LjMsMi4zLDE5LjksNi4zbDI5LjgtMTYuNGwtMTYuMS02NC43aC0zNGwtMTE2LjEsMjE0LjloNDMuNWwyNC40LTQ1LjdoODUuM2wxMS40LDQ1LjdoMzkuMg0KCQkJTDE4NDYuOSwyOTEuNHoiIC8+DQoJCQk8ZWxsaXBzZSB0cmFuc2Zvcm09Im1hdHJpeCgxLjA2MzczM2UtMDIgLTAuOTk5OSAwLjk5OTkgMS4wNjM3MzNlLTAyIDE0NzAuMDY5NiAyMDg1LjY3MzgpIiBzdHlsZT0iZmlsbDogIzU1ODhGRjsiIGN4PSIxNzg5IiBjeT0iMjk5LjkiIHJ4PSIxMy41IiByeT0iMTMuNSIgLz4NCgkJPHBhdGggc3R5bGU9ImZpbGw6ICM1NTg4RkY7IiBkPSJNMTIxNS41LDM2Mi4zYzIuNSwyLjgsNi4zLDQuNiwxMC4xLDQuNmgwLjVjNy42LDAsMTQtNS43LDE1LTEzLjJsMjAuMy0xNDMuNmgtMjkuMmwtMjAuMSwxNDEuNg0KCQkJQzEyMTEuOCwzNTUuNCwxMjEyLjksMzU5LjQsMTIxNS41LDM2Mi4zeiIgLz4NCgkJPHBhdGggc3R5bGU9ImZpbGw6ICM1NTg4RkY7IiBkPSJNMTI1MC4zLDM3OC40Yy0wLjMsMi4yLTEuNSw0LjYtMy40LDYuNmMtMS44LDEuNy0zLjcsMi41LTYuMSwyLjVoLTE5LjljLTcuNCwwLTE0LDUuOC0xNSwxMy4yDQoJCQlsLTAuMSwwLjVjLTAuNSw0LDAuNyw3LjgsMy4yLDEwLjdjMi41LDIuOCw2LjMsNC42LDEwLjEsNC42aDE5LjljNS40LDAsMTAuMi0xLDE0LjctMy4yYzEzLjgtNS43LDIzLjItMTcuOCwyNS4xLTMyLjdsMjUuMS0xOTMuNg0KCQkJaC0yOC45TDEyNTAuMywzNzguNHoiIC8+DQoJCTxwYXRoIHN0eWxlPSJmaWxsOiAjNTU4OEZGOyIgZD0iTTEyMDYuNywyNTkuOWMzLjYsMCw2LjYtMi45LDYuNi02LjZjMC0wLjctMC4xLTEuMy0wLjMtMS45YzAsMCwwLDAsMC4xLDBsLTEyLjEtNDJsLTAuMS0wLjINCgkJCWMtMy04LjEtNy0xNC4zLTExLjktMTguMWwtMC41LTAuNGMtNS43LTMuNi0xMy4xLTUuNS0yMi43LTUuNWgtMzIuNmMtOS4yLDAtMTYuOSwxLjktMjIuOCw1LjZjLTYuMyw0LTExLjYsOS43LTE1LjgsMTcNCgkJCWMwLDAtMTYuNywyOC0yNS40LDQyLjRsMC4xLDAuMWMtMC41LDAuOS0wLjgsMS45LTAuOCwzYzAsMy42LDIuOSw2LjYsNi42LDYuNmMwLjEsMCwwLjIsMCwwLjIsMGgyMC43YzEuNi0yLjcsMy4zLTUuNCw1LTguMQ0KCQkJbDAuNS0wLjhjNS40LTkuMywxMi4yLTIwLjgsMTcuNS0yOS41bDAuMS0wLjJjMS40LTIuNCwzLjMtNC41LDUuNC01LjhjMS42LTEsNC4xLTEuNSw3LjEtMS41aDMyLjZjMi43LDAsNC44LDAuNCw1LjgsMS4xDQoJCQljMS40LDEuMSwyLjYsMi44LDMuMiw0LjdsMTEuNSw0MGgyMS4xdi0wLjFDMTIwNi4xLDI1OS45LDEyMDYuNCwyNTkuOSwxMjA2LjcsMjU5Ljl6IiAvPg0KCQk8cGF0aCBzdHlsZT0iZmlsbDogIzU1ODhGRjsiIGQ9Ik0xMTczLDI2OC44aC02MC45Yy04LjQsMC0xNi45LDMuMy0yMy45LDkuM2MtNi44LDUuOC0xMS4zLDEzLjYtMTIuOSwyMS45bC0xNC40LDc4LjcNCgkJCWMtMC45LDUuMS0wLjcsMTAsMC41LDE0LjRjMi4yLDkuMiw4LjEsMTYuMywxNi40LDIwYzQsMi4yLDguNSwzLjMsMTQsMy4zaDg0LjJjNy41LDAsMTQuMS01LjYsMTUuNC0xMy4xbDAuMS0wLjUNCgkJCWMwLjctNC0wLjMtNy44LTIuNy0xMC43Yy0yLjQtMi44LTUuOS00LjUtOS45LTQuNWgtODQuMmMtMS44LDAtMy4zLTAuNy00LjUtMmwtMC4yLTAuMmMtMC42LTAuNy0xLjQtMS45LTAuOS00LjdsMTQuNS03OC44DQoJCQljMC4zLTEuNSwwLjctMi4yLDEuOS0zLjFsMC41LTAuNGMwLjctMC43LDEuNC0xLDMuMi0xaDYwLjljMC44LDAsMS4yLDAuMSwxLjIsMC4xbDAuMywwLjRjMC4yLDAuMywwLjUsMC42LDAuMiwybC03LjYsMzMuMg0KCQkJYy0wLjUsMi43LTIuNSw0LjYtNS4xLDQuNkgxMTMyYy03LjQsMC0xNC4yLDUuOC0xNS40LDEzLjFsLTAuMSwwLjdjLTAuNiwzLjcsMC4zLDcuNSwyLjcsMTAuM2MyLjQsMi45LDYuMSw0LjYsOS45LDQuNmgyNy4yDQoJCQljMC44LDAsMS41LDAsMi4zLTAuMWMwLjYsMCwxLjIsMC4xLDEuOCwwLjFjMTYuNSwwLDI4LjctMTAuNSwzMC4zLTI0LjFjMS0zLjcsOS43LTQwLjMsOS43LTQwLjNjMC44LTQuNCwwLjYtOC43LTAuNi0xMi41DQoJCQlDMTE5Ni42LDI3Ni45LDExODYuMiwyNjguOCwxMTczLDI2OC44eiIgLz4NCgkJPHBhdGggc3R5bGU9ImZpbGw6ICM1NTg4RkY7IiBkPSJNMTAxOSwzODcuM0g4MTMuOWwtMi4xLDIyLjRjMCwwLDAsMCwwLjEsMHYwLjFjMCwzLjYsMi45LDYuNyw2LjcsNi43bDAsMGwwLDBoMTk4LjcNCgkJCWM3LjMsMCwxMy44LTUuOCwxNC44LTEzLjJsMC4xLTAuN2MwLjUtNC0wLjctNy45LTMuMi0xMC44QzEwMjYuMywzODksMTAyMi44LDM4Ny4zLDEwMTksMzg3LjN6IiAvPg0KCQk8cGF0aCBzdHlsZT0iZmlsbDogIzU1ODhGRjsiIGQ9Ik05NTguOSwzODFsMS41LDAuNGMxLjIsMC4zLDIuNCwwLjUsMy42LDAuNWwwLDBjNS43LDAsMTEtMy40LDEzLjYtOC43DQoJCQljMTUuNi0zMy41LDI3LjUtODYuMSw0MC4yLTEyOC4ybDAuMS0wLjNjMC4xLTAuMywwLjEtMC41LDAuMi0wLjhoLTMwYy0xMS45LDM5LjMtMjIuNyw4OC43LTM2LjcsMTE4LjdjLTEuNiwzLjYtMS42LDcuNywwLDExLjMNCgkJCUM5NTIuOCwzNzcuMSw5NTUuNCwzNzkuNyw5NTguOSwzODF6IiAvPg0KCQk8cGF0aCBzdHlsZT0iZmlsbDogIzU1ODhGRjsiIGQ9Ik04NzEuOCwzNjcuN2MxLDYuNSw2LjQsMTAuOSwxMy4xLDEwLjljMSwwLDItMC4xLDMtMC4zbDAuMy0wLjFjNy4xLTEuOSwxMS45LTguNCwxMS4yLTE1LjQNCgkJCWwtMTIuMS0xMTYuNkg4NTl2MC4xbDEyLjgsMTIwLjlMODcxLjgsMzY3Ljd6IiAvPg0KCQk8cGF0aCBzdHlsZT0iZmlsbDogIzU1ODhGRjsiIGQ9Ik0xMDI4LjcsMjA1LjVoLTcyLjVsMy44LTI1LjJoLTIyLjdsMCwwYy0wLjEsMC0wLjIsMC0wLjQsMGMtMy4zLDAtNi4xLDIuNS02LjUsNS45bDAsMGwtMy4zLDE5LjMNCgkJCWMwLDAtODcuOSwwLTg4LjQsMC4xbC0xLjksMjAuNWMtMC4xLDAuNC0wLjEsMC44LTAuMSwxLjNjMCwzLjYsMi45LDYuNiw2LjYsNi43djAuMWMzNC43LDAuMSwxODMuOCwwLDE4My44LDBjNy42LDAsMTQtNS42LDE1LTEzDQoJCQlWMjIxYzAuNS00LjEtMC42LTcuOS0zLjEtMTAuOEMxMDM2LjUsMjA3LjEsMTAzMi44LDIwNS41LDEwMjguNywyMDUuNXoiIC8+DQoJCTxwYXRoIHN0eWxlPSJmaWxsOiAjNTU4OEZGOyIgZD0iTTYxNy45LDM1OC41aDIzLjdjMTQuNywwLDIwLjUsNywxNy45LDIxLjhsLTMuMiwxOC42Yy0xLjMsMTQuNy05LDE5LjktMjYuMywyMC41SDYwMHYtMTkuMmgxOC42DQoJCQljNy43LDAsMTAuOS0yLjYsMTIuMi02LjRsMS4zLTUuOGMxLjMtNS4xLTEuOS03LjctOS42LTcuN2gtMTIuOGMtMTIuMiwxOS4yLTMwLjcsMzAuMS02Mi4xLDM5LjdsLTcuNy0xOS4yDQoJCQljMjAuNS02LjQsMjguOC05LjYsNDAuNC0xOS45aC0zMC43bDMuMi0yMS44aDM3LjhjMC0wLjYsMC42LTMuMiwxLjktNi40YzAuNi0yLjYsMy4yLTQuNSw1LjgtNC41aDIyLjRMNjE3LjksMzU4LjV6IiAvPg0KCQk8cGF0aCBzdHlsZT0iZmlsbDogIzU1ODhGRjsiIGQ9Ik01NzIuNSwyMTMuMWwyLjYtMTQuN2g5OC42bDEuMy0xMC4yYzAuNi0zLjIsMy4yLTUuMSw1LjgtNS4xSDcwN2wtMi42LDE1LjRoODguNA0KCQkJYzYuNCwwLDExLjUsNS44LDEwLjksMTIuOGwwLDBjLTAuNiw1LjEtNS4xLDktMTAuOSw5aC05MWwtMS45LDEwLjloNzMuN2M1LjgsMCwxMC4yLDUuMSw5LDEwLjlsMCwwYy0wLjYsNC41LTQuNSw3LjctOSw3LjdINTg5LjENCgkJCWMtMy44LDAtNi40LTMuMi01LjgtN2wxLjktMTEuNWg4My4zbDEuOS0xMC45aC05MS42QzU3NSwyMjAuMiw1NzEuOCwyMTYuMyw1NzIuNSwyMTMuMXoiIC8+DQoJCTxwYXRoIHN0eWxlPSJmaWxsOiAjNTU4OEZGOyIgZD0iTTc3Ni44LDMyMi42aC00Ny40YzAuNi0wLjYsMS45LTEuOSwyLjYtMy4yYzEuOS0zLjgsMy44LTYuNCw0LjUtOWg5LjZjMTYuNywwLDI2LjMtNywyOC4yLTIwLjUNCgkJCWwxLjktMTIuMmMxLjktMTIuOC0zLjgtMTkuMi0xOC42LTE5LjJINjAwYy0xMi44LDAtMjAuNSw3LTIzLjEsMjAuNWwtMS45LDEyLjJjLTEuOSwxMi44LDMuOCwxOS4yLDE4LjYsMTkuMmg5LjYNCgkJCWMwLjYsMy44LDEuMyw2LjQsMS45LDljMC42LDEuMywxLjMsMi42LDEuOSwzLjJoLTU0LjRsLTEuOSwxMi4yYy0wLjYsMy44LDIuNiw3LDUuOCw3aDIxOS43YzQuNSwwLDktMy4yLDkuNi04LjMNCgkJCUM3ODcuNywzMjguNCw3ODIuNiwzMjIuNiw3NzYuOCwzMjIuNnogTTYwMy4yLDI4Ni4xbDAuNi00LjVjMC42LTMuOCwzLjItNS4xLDctNS4xaDEzMC43YzQuNSwwLDYuNCwxLjksNS44LDUuMWwtMC42LDQuNQ0KCQkJYy0wLjYsNS4xLTMuMiw3LjctNy43LDcuN0g2MDguM0M2MDQuNSwyOTMuOCw2MDIuNiwyOTEuMyw2MDMuMiwyODYuMXogTTY5OS45LDMxOS40Yy0wLjYsMS4zLTEuOSwyLjYtMi42LDMuMmgtNTguMw0KCQkJYy0wLjYtMC42LTEuMy0xLjktMS45LTMuMmMtMC42LTMuOC0xLjMtNi40LTEuOS05aDY5LjJDNzAyLjUsMzE1LDcwMS4yLDMxNy41LDY5OS45LDMxOS40eiIgLz4NCgkJPHBhdGggc3R5bGU9ImZpbGw6ICM1NTg4RkY7IiBkPSJNNzU5LjUsMzU0LjdoLTU2LjRjLTE0LjcsMC0yMy4xLDctMjUsMjAuNWwtMy44LDI1Yy0zLjIsMTMuNSwyLjYsMTkuMiwxOC42LDE5LjJoNTQuNA0KCQkJYzE2LTAuNiwyMy43LTYuNCwyNi4zLTIwLjVsMy44LTIzLjFDNzc4LjcsMzYxLjcsNzczLDM1NC43LDc1OS41LDM1NC43eiBNNzQ2LjEsMzgyLjhsLTEuMyw5Yy0wLjYsNS44LTMuOCw5LTksOWgtMjUNCgkJCWMtNywwLTEwLjItMi42LTguMy03LjdsMS4zLTljMC42LTUuOCw0LjUtOSwxMC4yLTloMjYuM0M3NDQuOCwzNzUuMiw3NDcuMywzNzcuNyw3NDYuMSwzODIuOHoiIC8+DQoJPC9nPg0KCTxwYXRoIHN0eWxlPSJmaWxsOiAjNTU4OEZGOyIgZD0iTTQzNC41LDI0OS40Yy03LjMtMTkuMS0xOS0zNi42LTM0LjYtNTAuNWMtMjMuOS0yMS41LTU0LjctMzMuMy04Ni45LTMzLjMNCgkJYy0yNy45LDAtNTQuNCw4LjctNzYuOCwyNS4xYy0xMC44LDcuOS0yMC4yLDE3LjMtMjgsMjcuOWMtNC45LTAuNy05LjgtMS0xNC44LTFjLTI3LjgsMC01My45LDEwLjgtNzMuNCwzMC41DQoJCWMtMTkuNiwxOS42LTMwLjUsNDUuNy0zMC41LDczLjRjMCwyNS44LDkuNSw1MC41LDI2LjgsNjkuN2MxMy44LDE1LjIsMzEuNSwyNS44LDUxLDMwLjljOC41LDI1LjMsMzIuNSw0My42LDYwLjYsNDMuNg0KCQljMzUuMiwwLDYzLjktMjguNyw2My45LTYzLjljMC0yLTAuMS00LjItMC4zLTYuMmw4OS43LTQ3LjFsLTE5LjYtMzRsLTg1LjgsNDUuMWMtMTEuNy0xMy4zLTI4LjktMjEuOC00OC0yMS44DQoJCWMtMjcuOCwwLTUxLjQsMTcuNy02MC4zLDQyLjRjLTIyLjYtOS45LTM4LjQtMzIuNC0zOC40LTU4LjdjMC0zNS4zLDI4LjctNjQuMSw2NC4xLTY0LjFjMTIuNSwwLDI0LjEsMy41LDM0LDkuNw0KCQljMTEuOS0zNS45LDQ1LjctNjEuNyw4NS41LTYxLjdjNDYuMywwLDg0LjUsMzQuOSw4OS41LDc5LjljMS42LTAuMiwzLjItMC4yLDQuOS0wLjJjMjcuOCwwLDUwLjIsMjIuNSw1MC4yLDUwLjINCgkJYzAsMjYuMi0yMC4yLDQ3LjgtNDUuOSw1MGgtMjguOGMtMS4zLTAuMy0yLjYtMC40LTQtMC40Yy0xMSwwLTIwLjEsOS0yMC4xLDIwLjFjMCwxMC41LDguMSwxOS4xLDE4LjQsMjB2MC4yaDM0LjJoMS43bDEuNy0wLjENCgkJYzIyLjQtMS45LDQzLjEtMTIuMSw1OC40LTI4LjdjMTUuNC0xNi43LDIzLjktMzguNCwyMy45LTYxLjFDNDk3LjUsMjk0LjksNDcwLjksMjYwLjgsNDM0LjUsMjQ5LjR6DQoJCU0yMjguMSwzNzYuOQ0KCQljMTMuNiwwLDI0LjcsMTEsMjQuNywyNC43DQoJCWMwLDEzLjYtMTEsMjQuNy0yNC43LDI0LjcNCgkJYy0xMy42LDAtMjQuNy0xMS0yNC43LTI0LjcNCgkJQzIwMy40LDM4OCwyMTQuNSwzNzYuOSwyMjguMSwzNzYuOXoiIC8+DQo8L3N2Zz4NCg==","LIB~965~-475~package`SOT-23-5_L2.9-W1.6-P0.95-LS2.8-BR`BOM_Supplier`LCSC`BOM_Supplier Part`C625598`BOM_Manufacturer`MICROCHIP(\u7f8e\u56fd\u5fae\u82af)`BOM_Manufacturer Part`MCP73831T-3ACI\/OT`link`https:\/\/atta.szlcsc.comnull`Contributor`lcsc`spicePre`U`spiceSymbolName`MCP73831T-3ACI\/OT`~~0~gge7143555a89f9d3b2~0578b39d94674c0886345dcbf3a746c7~5341893247b64f29852a437c79b2b142~0~~yes~yes~5d4cdacf822642cfa6c72e5b248951e1~1659229664~0167061fd0654995afcdff8a5b3453dc#@$T~N~959.03125~-498~0~#000080~Arial~~~~~comment~MCP73831T-3ACI\/OT~1~start~gge226~0~#@$T~P~959.03125~-507~0~#000080~Arial~~~~~comment~U1~1~start~gge235~0~#@$R~930~-495~2~2~70~40~#880000~1~0~none~gge241~0~#@$E~935~-490~1.5~1.5~#880000~1~0~#880000~gge244~0#@$P~show~0~1~920~-485~180~gge247~0^^920~-485^^M 920 -485 h 10~#880000^^1~933.7~-481~0~STAT~start~~~#0000FF^^1~929.5~-486~0~1~end~~~#0000FF^^0~927~-485^^0~M 930 -482 L 933 -485 L 930 -488#@$P~show~0~2~920~-475~180~gge268~0^^920~-475^^M 920 -475 h 10~#880000^^1~933.7~-471~0~VSS~start~~~#0000FF^^1~929.5~-476~0~2~end~~~#0000FF^^0~927~-475^^0~M 930 -472 L 933 -475 L 930 -478#@$P~show~0~3~920~-465~180~gge289~0^^920~-465^^M 920 -465 h 10~#880000^^1~933.7~-461~0~VBAT~start~~~#0000FF^^1~929.5~-466~0~3~end~~~#0000FF^^0~927~-465^^0~M 930 -462 L 933 -465 L 930 -468#@$P~show~0~4~1010~-465~0~gge310~0^^1010~-465^^M 1010 -465 h -10~#880000^^1~996.3~-461~0~VDD~end~~~#0000FF^^1~1000.5~-466~0~4~start~~~#0000FF^^0~1003~-465^^0~M 1000 -468 L 997 -465 L 1000 -462#@$P~show~0~5~1010~-485~0~gge331~0^^1010~-485^^M 1010 -485 h -10~#880000^^1~996.3~-481~0~PROG~end~~~#0000FF^^1~1000.5~-486~0~5~start~~~#0000FF^^0~1003~-485^^0~M 1000 -488 L 997 -485 L 1000 -482","LIB~935~-585~package`MK12C02`BOM_Manufacturer Part`MK12C02`Contributor`enrique3257`spicePre`U`spiceSymbolName`MK12C02`~270~0~gge061f61618f135cf2~a2b13e0c989f460081d2066ad47593d6~d4b1ee9acf0c459cb78f24f7a81f572a~0~~yes~yes~~1555825849~7c2f508862194a8ba49c6457c77b938d#@$T~N~918.03125~-612~0~#000080~Arial~~~~~comment~MK12C02~1~start~gge1504~0~#@$T~P~918.03125~-621~0~#000080~Arial~~~~~comment~U2~1~start~gge1510~0~#@$P~show~0~1~900~-605~180~gge1516~0^^900~-605^^M 900 -605 h 20~#880000^^1~922~-602~0~1~start~~~#0000FF^^1~915~-606~0~1~end~~~#0000FF^^0~917~-605^^0~M 920 -602 L 923 -605 L 920 -608#@$P~show~0~2~900~-585~180~gge1537~0^^900~-585^^M 900 -585 h 20~#880000^^1~922~-582~0~2~start~~~#0000FF^^1~915~-586~0~2~end~~~#0000FF^^0~917~-585^^0~M 920 -582 L 923 -585 L 920 -588#@$P~show~0~3~900~-565~180~gge1558~0^^900~-565^^M 900 -565 h 20~#880000^^1~922~-562~0~3~start~~~#0000FF^^1~915~-566~0~3~end~~~#0000FF^^0~917~-565^^0~M 920 -562 L 923 -565 L 920 -568#@$PL~930 -605 940 -605 940 -585 930 -585~#880000~1~0~none~gge1579~0#@$PL~940 -585 950 -585 950 -565 930 -565~#880000~1~1~none~gge1582~0#@$AR~part_arrowhead~930~-585~gge1585~180~M 930 -585 L 932 -581 L 927 -585 L 932 -589 Z ~#333333~0~3~15#@$AR~part_arrowhead~930~-565~gge1591~180~M 930 -565 L 932 -561 L 927 -565 L 932 -569 Z ~#333333~0~3~15#@$AR~part_arrowhead~930~-605~gge1597~180~M 930 -605 L 932 -601 L 927 -605 L 932 -609 Z ~#333333~0~3~15","LIB~830~-630~package`ONSC-SOD-123FL-2-498_V`description`Schottky Power Rectifier, 2-Pin SOD-123, Pb-Free, Tape and Reel`spicePre`D`spiceSymbolName`MBR120ESFT3G`BOM_Manufacturer Part``~180~0~gge5700e4778cf11db4~90cf093e8e59429198dcc3506b01d563~e30675f008f545999bbafba956c00b2a~0~~yes~yes~5b68248654f74386bb4aa8f59380db5e~1545592340~#@$T~N~824.03125~-643~0~#000080~Arial~~~~~comment~MBR120ESFT3G~1~start~gge4720~0~#@$T~P~824.03125~-652~0~#000080~Arial~~~~~comment~D1~1~start~gge4726~0~#@$R~810~-640~1~1~40~20~#880000~1~0~NONE~gge4732~0~#@$P~show~0~1~790~-630~180~gge4735~0^^790~-630^^M 790 -630 h 20~#880000^^1~813~-627~0~K~start~~~#0000FF^^1~804~-631~0~1~end~~~#0000FF^^0~807~-630^^0~M 810 -627 L 813 -630 L 810 -633#@$P~show~0~2~870~-630~0~gge4756~0^^870~-630^^M 870 -630 h -20~#880000^^1~847~-627~0~A~end~~~#0000FF^^1~856~-631~0~2~start~~~#0000FF^^0~853~-630^^0~M 850 -633 L 847 -630 L 850 -627","LIB~685~-575~package`SOT-23-6_L2.9-W1.6-P0.95-LS2.8-BR`BOM_Supplier`LCSC`BOM_Manufacturer`FM`BOM_Manufacturer Part`DW07D`BOM_Supplier Part`C89497`BOM_JLCPCB Part Class`Extended Part`spicePre`U`spiceSymbolName`DW07D`~~0~ggea459010bf8980185~f3d2a2ecf658447dac746eb15158a989~a57f31e8fd8cf18cab87534d560b0a2c~0~~yes~yes~d8e4c4f0050a40b692447963b0925c94~1641818167~9b97368aefad402fb027248916655726#@$T~N~679.03125~-598~0~#000080~Arial~~~~~comment~DW07D~1~start~gge4840~0~#@$T~P~679.03125~-607~0~#000080~Arial~~~~~comment~U3~1~start~gge4846~0~#@$R~660~-595~2~2~50~40~#880000~1~0~none~gge4852~0~#@$E~665~-590~1.5~1.5~#880000~1~0~#880000~gge4855~0#@$P~show~0~1~650~-585~180~gge4858~0^^650~-585^^M 650 -585 h 10~#880000^^1~663.7~-581~0~V-~start~~~#0000FF^^1~659.5~-586~0~1~end~~~#0000FF^^0~657~-585^^0~M 660 -582 L 663 -585 L 660 -588#@$P~show~0~2~650~-575~180~gge4879~0^^650~-575^^M 650 -575 h 10~#880000^^1~663.7~-571~0~S1~start~~~#0000FF^^1~659.5~-576~0~2~end~~~#0000FF^^0~657~-575^^0~M 660 -572 L 663 -575 L 660 -578#@$P~show~0~3~650~-565~180~gge4900~0^^650~-565^^M 650 -565 h 10~#880000^^1~663.7~-561~0~S2~start~~~#0000FF^^1~659.5~-566~0~3~end~~~#0000FF^^0~657~-565^^0~M 660 -562 L 663 -565 L 660 -568#@$P~show~0~4~720~-565~0~gge4921~0^^720~-565^^M 720 -565 h -10~#880000^^1~706.3~-561~0~D~end~~~#0000FF^^1~710.5~-566~0~4~start~~~#0000FF^^0~713~-565^^0~M 710 -568 L 707 -565 L 710 -562#@$P~show~0~5~720~-575~0~gge4942~0^^720~-575^^M 720 -575 h -10~#880000^^1~706.3~-571~0~VDD~end~~~#0000FF^^1~710.5~-576~0~5~start~~~#0000FF^^0~713~-575^^0~M 710 -578 L 707 -575 L 710 -572#@$P~show~0~6~720~-585~0~gge4963~0^^720~-585^^M 720 -585 h -10~#880000^^1~706.3~-581~0~VSS~end~~~#0000FF^^1~710.5~-586~0~6~start~~~#0000FF^^0~713~-585^^0~M 710 -588 L 707 -585 L 710 -582","LIB~620~-585~package`R0603`nameAlias`Value(\u03a9)`BOM_Supplier Part``BOM_Supplier``Contributor`LCEDA_Lib`spicePre`R`spiceSymbolName`R_0603_US`BOM_Manufacturer Part``~~0~gge0ec8d26ca032909b~398691f1f785460098bbe5ee6590333c~b0248eb51e084227889f2cb84eab79c4~0~~yes~yes~~1586861892~#@$T~N~614.03125~-593~0~#000080~Arial~~~~~comment~1k\u03a9~1~start~gge4967~0~#@$T~P~614.03125~-602~0~#000080~Arial~~~~~comment~R1~1~start~gge4973~0~#@$PL~635 -585 632 -580~#880000~1~0~none~gge4979~0#@$PL~627 -590 622 -580~#880000~1~0~none~gge4982~0#@$PL~632 -580 627 -590~#880000~1~0~none~gge4985~0#@$P~show~0~2~640~-585~0~gge4988~0^^640~-585^^M 640 -585 h -5~#880000^^0~631~-585~0~2~end~~~#0000FF^^0~639~-589~0~2~start~~~#0000FF^^0~638~-585^^0~M 635 -588 L 632 -585 L 635 -582#@$PL~613 -580 608 -590~#880000~1~0~none~gge5009~0#@$PL~622 -580 618 -590~#880000~1~0~none~gge5012~0#@$PL~618 -590 613 -580~#880000~1~0~none~gge5015~0#@$PL~608 -590 605 -585~#880000~1~0~none~gge5018~0#@$P~show~0~1~600~-585~180~gge5021~0^^600~-585^^M 600 -585 h 5~#880000^^0~609~-585~0~1~start~~~#0000FF^^0~601~-589~0~1~end~~~#0000FF^^0~602~-585^^0~M 605 -582 L 608 -585 L 605 -588","LIB~945~-525~package`R0603`nameAlias`Value(\u03a9)`BOM_Supplier Part``BOM_Supplier``Contributor`LCEDA_Lib`spicePre`R`spiceSymbolName`R_0603_US`BOM_Manufacturer Part``~~0~ggef06d68be072ae920~398691f1f785460098bbe5ee6590333c~b0248eb51e084227889f2cb84eab79c4~0~~yes~yes~~1586861892~#@$T~N~939.03125~-533~0~#000080~Arial~~~~~comment~300\u03a9~1~start~gge5048~0~#@$T~P~939.03125~-542~0~#000080~Arial~~~~~comment~R2~1~start~gge5054~0~#@$PL~960 -525 957 -520~#880000~1~0~none~gge5060~0#@$PL~952 -530 947 -520~#880000~1~0~none~gge5063~0#@$PL~957 -520 952 -530~#880000~1~0~none~gge5066~0#@$P~show~0~2~965~-525~0~gge5069~0^^965~-525^^M 965 -525 h -5~#880000^^0~956~-525~0~2~end~~~#0000FF^^0~964~-529~0~2~start~~~#0000FF^^0~963~-525^^0~M 960 -528 L 957 -525 L 960 -522#@$PL~938 -520 933 -530~#880000~1~0~none~gge5090~0#@$PL~947 -520 943 -530~#880000~1~0~none~gge5093~0#@$PL~943 -530 938 -520~#880000~1~0~none~gge5096~0#@$PL~933 -530 930 -525~#880000~1~0~none~gge5099~0#@$P~show~0~1~925~-525~180~gge5102~0^^925~-525^^M 925 -525 h 5~#880000^^0~934~-525~0~1~start~~~#0000FF^^0~926~-529~0~1~end~~~#0000FF^^0~927~-525^^0~M 930 -522 L 933 -525 L 930 -528","LIB~1065~-485~package`R0603`nameAlias`Value(\u03a9)`BOM_Supplier Part``BOM_Supplier``Contributor`LCEDA_Lib`spicePre`R`spiceSymbolName`R_0603_US`BOM_Manufacturer Part``~~0~gge88461f96216cb92c~398691f1f785460098bbe5ee6590333c~b0248eb51e084227889f2cb84eab79c4~0~~yes~yes~~1586861892~#@$T~N~1059.03125~-493~0~#000080~Arial~~~~~comment~1k\u03a9~1~start~gge5129~0~#@$T~P~1059.03125~-502~0~#000080~Arial~~~~~comment~R3~1~start~gge5135~0~#@$PL~1080 -485 1077 -480~#880000~1~0~none~gge5141~0#@$PL~1072 -490 1067 -480~#880000~1~0~none~gge5144~0#@$PL~1077 -480 1072 -490~#880000~1~0~none~gge5147~0#@$P~show~0~2~1085~-485~0~gge5150~0^^1085~-485^^M 1085 -485 h -5~#880000^^0~1076~-485~0~2~end~~~#0000FF^^0~1084~-489~0~2~start~~~#0000FF^^0~1083~-485^^0~M 1080 -488 L 1077 -485 L 1080 -482#@$PL~1058 -480 1053 -490~#880000~1~0~none~gge5171~0#@$PL~1067 -480 1063 -490~#880000~1~0~none~gge5174~0#@$PL~1063 -490 1058 -480~#880000~1~0~none~gge5177~0#@$PL~1053 -490 1050 -485~#880000~1~0~none~gge5180~0#@$P~show~0~1~1045~-485~180~gge5183~0^^1045~-485^^M 1045 -485 h 5~#880000^^0~1054~-485~0~1~start~~~#0000FF^^0~1046~-489~0~1~end~~~#0000FF^^0~1047~-485^^0~M 1050 -482 L 1053 -485 L 1050 -488","LIB~750~-575~package`C0603`nameAlias`Value(F)`BOM_Supplier Part``BOM_Supplier``Contributor`LCEDA_Lib`spicePre`C`spiceSymbolName`C_0603_US`BOM_Manufacturer Part``~~0~gge93e3172542a05848~f8151fdc728a41ebbc304e11d39e5437~24eeb2ceca08480b92b847b6a310acda~0~~yes~yes~~1586863195~#@$T~N~744.03125~-586~0~#000080~Arial~~~~~comment~0.1\u00b5F~1~start~gge5366~0~#@$T~P~744.03125~-595~0~#000080~Arial~~~~~comment~C1~1~start~gge5372~0~#@$PL~748 -567 748 -583~#880000~1~0~none~gge5378~0#@$P~show~0~1~730~-575~180~gge5381~0^^730~-575^^M 740 -575 h -10~#880000^^0~744~-575~0~1~start~~~#0000FF^^0~736~-579~0~1~end~~~#0000FF^^0~717~-575^^0~M 720 -572 L 723 -575 L 720 -578#@$PL~760 -575 752 -575~#880000~1~0~none~gge5402~0#@$PL~752 -583 752 -567~#880000~1~0~none~gge5405~0#@$P~show~0~2~770~-575~0~gge5408~0^^770~-575^^M 760 -575 h 10~#880000^^0~756~-575~0~2~end~~~#0000FF^^0~764~-579~0~2~start~~~#0000FF^^0~783~-575^^0~M 780 -578 L 777 -575 L 780 -572#@$PL~748 -575 740 -575~#880000~1~0~none~gge5429~0","F~part_netLabel_gnD~905~-450~0~gge5504~~0^^905~-450^^GND~#000000~892~-424~0~start~1~Times New Roman~9pt~flag_gge118^^PL~905 -440 905 -450~#000000~1~0~transparent~gge5516~0^^PL~896 -440 914 -440~#000000~1~0~transparent~gge5519~0^^PL~899 -438 911 -438~#000000~1~0~transparent~gge5522~0^^PL~902 -436 908 -436~#000000~1~0~transparent~gge5525~0^^PL~904 -434 906 -434~#000000~1~0~transparent~gge5528~0","F~part_netLabel_gnD~1100~-450~0~gge5531~~0^^1100~-450^^GND~#000000~1087~-424~0~start~1~Times New Roman~9pt~flag_gge121^^PL~1100 -440 1100 -450~#000000~1~0~transparent~gge5543~0^^PL~1091 -440 1109 -440~#000000~1~0~transparent~gge5546~0^^PL~1094 -438 1106 -438~#000000~1~0~transparent~gge5549~0^^PL~1097 -436 1103 -436~#000000~1~0~transparent~gge5552~0^^PL~1099 -434 1101 -434~#000000~1~0~transparent~gge5555~0","F~part_netLabel_gnD~580~-570~0~gge5558~~0^^580~-570^^GND~#000000~567~-544~0~start~1~Times New Roman~9pt~flag_gge124^^PL~580 -560 580 -570~#000000~1~0~transparent~gge5570~0^^PL~571 -560 589 -560~#000000~1~0~transparent~gge5573~0^^PL~574 -558 586 -558~#000000~1~0~transparent~gge5576~0^^PL~577 -556 583 -556~#000000~1~0~transparent~gge5579~0^^PL~579 -554 581 -554~#000000~1~0~transparent~gge5582~0","LIB~995~-525~package`LED0603_RED`BOM_Manufacturer`EVERLIGHT(\u53f0\u6e7e\u4ebf\u5149)`BOM_Manufacturer Part`19-217\/R6C-AL1M2VY\/3T`BOM_Supplier Part`C72044`BOM_Supplier`LCSC`link``Contributor`LCEDA_01`spicePre`L`spiceSymbolName`LED-0603_R`~180~0~gge95bd9e6a49c74fd2~1efb3a885b5b4aecb6d41221a8f4d86b~5cbe824183374fac8e4c1ae848199ce3~0~~yes~yes~~1586866965~#@$T~N~983.328125~-536~0~#000080~Arial~~~~~comment~LED-0603_R~1~start~gge5639~0~#@$T~P~983.328125~-545~0~#000080~Arial~~~~~comment~D2~1~start~gge5645~0~#@$PT~M 1000 -531 L 990 -525 L 1000 -518 Z ~#880000~1~0~#880000~gge5651~0~#@$PL~990 -517 990 -533~#880000~1~0~#880000~gge5654~0#@$PL~990 -515 986 -511~#880000~1~0~#880000~gge5657~0#@$PL~986 -519 982 -515~#880000~1~0~#880000~gge5660~0#@$PT~M 983 -508 L 987 -510 L 985 -512 Z ~#880000~1~0~#880000~gge5663~0~#@$PT~M 979 -512 L 983 -514 L 981 -516 Z ~#880000~1~0~#880000~gge5666~0~#@$P~show~0~1~1015~-525~0~gge5669~0^^1015~-525^^M 1015 -525 h -15~#880000^^0~998~-522~0~1~end~~~#0000FF^^0~1002~-526~0~1~start~~~#0000FF^^0~1003~-525^^0~M 1000 -528 L 997 -525 L 1000 -522#@$P~show~0~2~975~-525~180~gge5690~0^^975~-525^^M 975 -525 h 15~#880000^^0~992~-522~0~2~start~~~#0000FF^^0~988~-526~0~2~end~~~#0000FF^^0~987~-525^^0~M 990 -522 L 993 -525 L 990 -528","LIB~755~-515~package`R0603`nameAlias`Value(\u03a9)`BOM_Supplier Part``BOM_Supplier``Contributor`LCEDA_Lib`spicePre`R`spiceSymbolName`R_0603_US`BOM_Manufacturer Part``~~0~gge597994e858b8c303~398691f1f785460098bbe5ee6590333c~b0248eb51e084227889f2cb84eab79c4~0~~yes~yes~~1586861892~#@$T~N~749.03125~-523~0~#000080~Arial~~~~~comment~1k\u03a9~1~start~gge6089~0~#@$T~P~749.03125~-532~0~#000080~Arial~~~~~comment~R5~1~start~gge6095~0~#@$PL~770 -515 767 -510~#880000~1~0~none~gge6101~0#@$PL~762 -520 757 -510~#880000~1~0~none~gge6104~0#@$PL~767 -510 762 -520~#880000~1~0~none~gge6107~0#@$P~show~0~2~775~-515~0~gge6110~0^^775~-515^^M 775 -515 h -5~#880000^^0~766~-515~0~2~end~~~#0000FF^^0~774~-519~0~2~start~~~#0000FF^^0~773~-515^^0~M 770 -518 L 767 -515 L 770 -512#@$PL~748 -510 743 -520~#880000~1~0~none~gge6131~0#@$PL~757 -510 753 -520~#880000~1~0~none~gge6134~0#@$PL~753 -520 748 -510~#880000~1~0~none~gge6137~0#@$PL~743 -520 740 -515~#880000~1~0~none~gge6140~0#@$P~show~0~1~735~-515~180~gge6143~0^^735~-515^^M 735 -515 h 5~#880000^^0~744~-515~0~1~start~~~#0000FF^^0~736~-519~0~1~end~~~#0000FF^^0~737~-515^^0~M 740 -512 L 743 -515 L 740 -518","LIB~810~-585~package`TH_L43.0-W-18.0-CR123A`BOM_Supplier`LCSC`BOM_Supplier Part`C238066`BOM_Manufacturer``BOM_Manufacturer Part`CR123A`Contributor`LCSC`BOM_JLCPCB Part Class``spicePre`U`spiceSymbolName`CR123A\u7535\u6c60\u5ea7`~180~0~gge6b226037853bce1e~89220b88b0014c988307997f2150859d~2f2867ce59a04cbaae71000867ccddfc~0~~yes~yes~50a880517fb2452e8ad6232df3692ad4~1641821594~11f0c598a7e149e090a7e209f0b67f8c#@$T~N~804.04~-595~0~#000080~Arial~~~~~comment~CR123A\u7535\u6c60\u5ea7~1~start~gge6311~0~#@$T~P~804.04~-604.14~0~#000080~Arial~~~~~comment~U4~1~start~gge6317~0~#@$P~show~1~2~790~-585~180~gge6323~0^^790~-585^^M 790 -585 h 15~#880000^^0~810~-582~0~2~start~~~#0000FF^^1~800~-586~0~2~end~~~#0000FF^^0~802~-585^^0~M 805 -582 L 808 -585 L 805 -588#@$P~show~1~1~830~-585~0~gge6344~0^^830~-585^^M 830 -585 h -15~#880000^^0~810~-582~0~1~end~~~#0000FF^^1~820~-586~0~1~start~~~#0000FF^^0~818~-585^^0~M 815 -588 L 812 -585 L 815 -582#@$PL~806 -580 806 -589~#880000~1~0~none~gge6365~0#@$PL~809 -576 809 -592~#880000~1~0~none~gge6368~0#@$PL~812 -580 812 -589~#880000~1~0~none~gge6371~0#@$PL~815 -576 815 -592~#880000~1~0~none~gge6374~0","F~part_netLabel_VCC~890~-630~0~gge6450~~0^^890~-630^^VCC~#000000~878~-642~0~start~1~Times New Roman~9pt~flag_gge127^^PL~890 -640 890 -630~#000000~1~0~none~gge6462~0^^PL~885 -640 895 -640~#000000~1~0~transparent~gge6465~0","W~775 -515 830 -515 830 -585 900 -585~#008800~1~0~none~gge6519~0","W~895 -635 895 -630 890 -630 890 -605 900 -605~#008800~1~0~none~gge6522~0","W~770 -575 790 -575 790 -585 720 -585~#008800~1~0~none~gge6564~0","W~735 -515 730 -515 730 -575 720 -575~#008800~1~0~none~gge6567~0","W~640 -585 650 -585~#008800~1~0~none~gge6574~0","W~650 -575 580 -575 580 -570~#008800~1~0~none~gge6577~0","W~600 -585 580 -585 580 -575~#008800~1~0~none~gge6580~0","W~650 -565 650 -545 790 -545 790 -575~#008800~1~0~none~gge6584~0","W~870 -630 890 -630~#008800~1~0~none~gge6603~0","F~part_netLabel_+5V~780~-630~0~gge6606~~0^^780~-630^^+5V~#000000~770~-642~0~start~1~Times New Roman~9pt~flag_gge130^^PL~780 -640 780 -630~#000000~1~0~none~gge6618~0^^PL~775 -640 785 -640~#000000~1~0~transparent~gge6621~0","W~780 -630 790 -630~#008800~1~0~none~gge6642~0","W~920 -475 905 -475 905 -450~#008800~1~0~none~gge6645~0","W~1010 -485 1045 -485~#008800~1~0~none~gge6648~0","W~1085 -485 1100 -485 1100 -450~#008800~1~0~none~gge6651~0","W~975 -525 970 -525 965 -525~#008800~1~0~none~gge6654~0","W~925 -525 905 -525 905 -485 920 -485~#008800~1~0~none~gge6660~0","W~920 -465 875 -465 875 -565 900 -565~#008800~1~0~none~gge6663~0","W~1010 -465 1035 -465 1035 -525 1015 -525~#008800~1~0~none~gge6666~0","F~part_netLabel_+5V~1035~-555~0~gge6669~~0^^1035~-555^^+5V~#000000~1025~-567~0~start~1~Times New Roman~9pt~flag_gge133^^PL~1035 -565 1035 -555~#000000~1~0~none~gge6681~0^^PL~1030 -565 1040 -565~#000000~1~0~transparent~gge6684~0","W~1035 -525 1035 -555 1035 -560~#008800~1~0~none~gge6705~0","O~720~-565~gge7831~M 716 -569 L 724 -561 M 724 -569 L 716 -561~#33cc33~0","LIB~550~-385~package`HDR-SMD_16P-P2.54-V-M-R2-C8-LS7.8`BOM_Supplier Part`C30734`BOM_Supplier`LCSC`BOM_Manufacturer``BOM_Manufacturer Part``image``Contributor`LCEDA_Lib`spicePre`H`spiceSymbolName`HDR-F-2.54_2x8`~90~0~gge3b0b54652c019c61~ae0b5b37bc0a4dd9b5c0682486157188~2244314c88bd4c989fc2989020a26e2d~0~~yes~yes~~1586865760~ff884f5ae9fc42ebb2288cbcd53c627b#@$T~N~592~-372.64~0~#000080~Arial~~~~~comment~HDR-F-2.54_2x8~1~start~gge7852~0~#@$T~P~592~-381.79~0~#000080~Arial~~~~~comment~H1~1~start~gge7858~0~#@$R~500~-405~2~2~90~40~#880000~1~0~none~gge7864~0~#@$P~show~1~1~510~-355~270~gge7867~0^^510~-355^^M 510 -355 v -10~#000000^^1~513~-370~270~1~start~~~#000000^^0~509~-365~270~1~end~~~#000000^^0~510~-362^^0~M 513 -365 L 510 -368 L 507 -365#@$P~show~1~2~510~-415~90~gge7888~0^^510~-415^^M 510 -415 v 10~#000000^^1~513~-400~270~2~end~~~#000000^^0~509~-405~270~2~start~~~#000000^^0~510~-408^^0~M 507 -405 L 510 -402 L 513 -405#@$P~show~1~3~520~-355~270~gge7909~0^^520~-355^^M 520 -355 v -10~#000000^^1~523~-370~270~3~start~~~#000000^^0~519~-365~270~3~end~~~#000000^^0~520~-362^^0~M 523 -365 L 520 -368 L 517 -365#@$P~show~1~4~520~-415~90~gge7930~0^^520~-415^^M 520 -415 v 10~#000000^^1~523~-400~270~4~end~~~#000000^^0~519~-405~270~4~start~~~#000000^^0~520~-408^^0~M 517 -405 L 520 -402 L 523 -405#@$P~show~1~5~530~-355~270~gge7951~0^^530~-355^^M 530 -355 v -10~#000000^^1~533~-370~270~5~start~~~#000000^^0~529~-365~270~5~end~~~#000000^^0~530~-362^^0~M 533 -365 L 530 -368 L 527 -365#@$P~show~1~6~530~-415~90~gge7972~0^^530~-415^^M 530 -415 v 10~#000000^^1~533~-400~270~6~end~~~#000000^^0~529~-405~270~6~start~~~#000000^^0~530~-408^^0~M 527 -405 L 530 -402 L 533 -405#@$P~show~1~7~540~-355~270~gge7993~0^^540~-355^^M 540 -355 v -10~#000000^^1~543~-370~270~7~start~~~#000000^^0~539~-365~270~7~end~~~#000000^^0~540~-362^^0~M 543 -365 L 540 -368 L 537 -365#@$P~show~1~8~540~-415~90~gge8014~0^^540~-415^^M 540 -415 v 10~#000000^^1~543~-400~270~8~end~~~#000000^^0~539~-405~270~8~start~~~#000000^^0~540~-408^^0~M 537 -405 L 540 -402 L 543 -405#@$P~show~1~9~550~-355~270~gge8035~0^^550~-355^^M 550 -355 v -10~#000000^^1~553~-370~270~9~start~~~#000000^^0~549~-365~270~9~end~~~#000000^^0~550~-362^^0~M 553 -365 L 550 -368 L 547 -365#@$P~show~1~10~550~-415~90~gge8056~0^^550~-415^^M 550 -415 v 10~#000000^^1~553~-400~270~10~end~~~#000000^^0~549~-405~270~10~start~~~#000000^^0~550~-408^^0~M 547 -405 L 550 -402 L 553 -405#@$P~show~1~11~560~-355~270~gge8077~0^^560~-355^^M 560 -355 v -10~#000000^^1~563~-370~270~11~start~~~#000000^^0~559~-365~270~11~end~~~#000000^^0~560~-362^^0~M 563 -365 L 560 -368 L 557 -365#@$P~show~1~12~560~-415~90~gge8098~0^^560~-415^^M 560 -415 v 10~#000000^^1~563~-400~270~12~end~~~#000000^^0~559~-405~270~12~start~~~#000000^^0~560~-408^^0~M 557 -405 L 560 -402 L 563 -405#@$P~show~1~13~570~-355~270~gge8119~0^^570~-355^^M 570 -355 v -10~#000000^^1~573~-370~270~13~start~~~#000000^^0~569~-365~270~13~end~~~#000000^^0~570~-362^^0~M 573 -365 L 570 -368 L 567 -365#@$P~show~1~14~570~-415~90~gge8140~0^^570~-415^^M 570 -415 v 10~#000000^^1~573~-400~270~14~end~~~#000000^^0~569~-405~270~14~start~~~#000000^^0~570~-408^^0~M 567 -405 L 570 -402 L 573 -405#@$P~show~1~15~580~-355~270~gge8161~0^^580~-355^^M 580 -355 v -10~#000000^^1~583~-370~270~15~start~~~#000000^^0~579~-365~270~15~end~~~#000000^^0~580~-362^^0~M 583 -365 L 580 -368 L 577 -365#@$P~show~1~16~580~-415~90~gge8182~0^^580~-415^^M 580 -415 v 10~#000000^^1~583~-400~270~16~end~~~#000000^^0~579~-405~270~16~start~~~#000000^^0~580~-408^^0~M 577 -405 L 580 -402 L 583 -405","LIB~550~-240~package`HDR-SMD_16P-P2.54-V-M-R2-C8-LS7.8`BOM_Supplier Part`C30734`BOM_Supplier`LCSC`BOM_Manufacturer``BOM_Manufacturer Part``image``Contributor`LCEDA_Lib`spicePre`H`spiceSymbolName`HDR-F-2.54_2x8`~90~0~gge77621986d3745064~ae0b5b37bc0a4dd9b5c0682486157188~2244314c88bd4c989fc2989020a26e2d~0~~yes~yes~~1586865760~ff884f5ae9fc42ebb2288cbcd53c627b#@$T~N~592~-227.64~0~#000080~Arial~~~~~comment~HDR-F-2.54_2x8~1~start~gge8209~0~#@$T~P~592~-236.79~0~#000080~Arial~~~~~comment~H2~1~start~gge8215~0~#@$R~500~-260~2~2~90~40~#880000~1~0~none~gge8221~0~#@$P~show~1~1~510~-210~270~gge8224~0^^510~-210^^M 510 -210 v -10~#000000^^1~513~-225~270~1~start~~~#000000^^0~509~-220~270~1~end~~~#000000^^0~510~-217^^0~M 513 -220 L 510 -223 L 507 -220#@$P~show~1~2~510~-270~90~gge8245~0^^510~-270^^M 510 -270 v 10~#000000^^1~513~-255~270~2~end~~~#000000^^0~509~-260~270~2~start~~~#000000^^0~510~-263^^0~M 507 -260 L 510 -257 L 513 -260#@$P~show~1~3~520~-210~270~gge8266~0^^520~-210^^M 520 -210 v -10~#000000^^1~523~-225~270~3~start~~~#000000^^0~519~-220~270~3~end~~~#000000^^0~520~-217^^0~M 523 -220 L 520 -223 L 517 -220#@$P~show~1~4~520~-270~90~gge8287~0^^520~-270^^M 520 -270 v 10~#000000^^1~523~-255~270~4~end~~~#000000^^0~519~-260~270~4~start~~~#000000^^0~520~-263^^0~M 517 -260 L 520 -257 L 523 -260#@$P~show~1~5~530~-210~270~gge8308~0^^530~-210^^M 530 -210 v -10~#000000^^1~533~-225~270~5~start~~~#000000^^0~529~-220~270~5~end~~~#000000^^0~530~-217^^0~M 533 -220 L 530 -223 L 527 -220#@$P~show~1~6~530~-270~90~gge8329~0^^530~-270^^M 530 -270 v 10~#000000^^1~533~-255~270~6~end~~~#000000^^0~529~-260~270~6~start~~~#000000^^0~530~-263^^0~M 527 -260 L 530 -257 L 533 -260#@$P~show~1~7~540~-210~270~gge8350~0^^540~-210^^M 540 -210 v -10~#000000^^1~543~-225~270~7~start~~~#000000^^0~539~-220~270~7~end~~~#000000^^0~540~-217^^0~M 543 -220 L 540 -223 L 537 -220#@$P~show~1~8~540~-270~90~gge8371~0^^540~-270^^M 540 -270 v 10~#000000^^1~543~-255~270~8~end~~~#000000^^0~539~-260~270~8~start~~~#000000^^0~540~-263^^0~M 537 -260 L 540 -257 L 543 -260#@$P~show~1~9~550~-210~270~gge8392~0^^550~-210^^M 550 -210 v -10~#000000^^1~553~-225~270~9~start~~~#000000^^0~549~-220~270~9~end~~~#000000^^0~550~-217^^0~M 553 -220 L 550 -223 L 547 -220#@$P~show~1~10~550~-270~90~gge8413~0^^550~-270^^M 550 -270 v 10~#000000^^1~553~-255~270~10~end~~~#000000^^0~549~-260~270~10~start~~~#000000^^0~550~-263^^0~M 547 -260 L 550 -257 L 553 -260#@$P~show~1~11~560~-210~270~gge8434~0^^560~-210^^M 560 -210 v -10~#000000^^1~563~-225~270~11~start~~~#000000^^0~559~-220~270~11~end~~~#000000^^0~560~-217^^0~M 563 -220 L 560 -223 L 557 -220#@$P~show~1~12~560~-270~90~gge8455~0^^560~-270^^M 560 -270 v 10~#000000^^1~563~-255~270~12~end~~~#000000^^0~559~-260~270~12~start~~~#000000^^0~560~-263^^0~M 557 -260 L 560 -257 L 563 -260#@$P~show~1~13~570~-210~270~gge8476~0^^570~-210^^M 570 -210 v -10~#000000^^1~573~-225~270~13~start~~~#000000^^0~569~-220~270~13~end~~~#000000^^0~570~-217^^0~M 573 -220 L 570 -223 L 567 -220#@$P~show~1~14~570~-270~90~gge8497~0^^570~-270^^M 570 -270 v 10~#000000^^1~573~-255~270~14~end~~~#000000^^0~569~-260~270~14~start~~~#000000^^0~570~-263^^0~M 567 -260 L 570 -257 L 573 -260#@$P~show~1~15~580~-210~270~gge8518~0^^580~-210^^M 580 -210 v -10~#000000^^1~583~-225~270~15~start~~~#000000^^0~579~-220~270~15~end~~~#000000^^0~580~-217^^0~M 583 -220 L 580 -223 L 577 -220#@$P~show~1~16~580~-270~90~gge8539~0^^580~-270^^M 580 -270 v 10~#000000^^1~583~-255~270~16~end~~~#000000^^0~579~-260~270~16~start~~~#000000^^0~580~-263^^0~M 577 -260 L 580 -257 L 583 -260","LIB~415~-240~package`IDC-SMD_12P-P2.54_B-3000N12P-0110`BOM_Supplier Part`C124388`BOM_Supplier`LCSC`BOM_Manufacturer``BOM_Manufacturer Part``Contributor`LCEDA_Lib`spicePre`J`spiceSymbolName`HDR-M-2.54_2x6`~270~0~gge271042c33f62ec10~bea2cfdd652a47aea8abfec759ee6783~29a9ed4bd7e44ab5b1151bac840be6d3~0~~yes~yes~~1586865575~d58f56ee75664e40ba2e2cb607bf3dd5#@$T~N~449~-227.81~0~#000080~Arial~~~~~comment~HDR-M-2.54_2x6~1~start~gge8917~0~#@$T~P~449~-236.67~0~#000080~Arial~~~~~comment~J1~1~start~gge8923~0~#@$R~375~-260~2~2~72~40~#880000~1~0~none~gge8929~0~#@$P~show~0~1~435~-270~90~gge8932~0^^435~-270^^M 435 -270 v 10~#000000^^1~438~-258~270~1~end~~~#000000^^0~434~-260~270~1~start~~~#333333^^0~435~-263^^0~M 432 -260 L 435 -257 L 438 -260#@$P~show~0~2~435~-210~270~gge8953~0^^435~-210^^M 435 -210 v -10~#000000^^1~438~-222~270~2~start~~~#000000^^0~434~-220~270~2~end~~~#333333^^0~435~-217^^0~M 438 -220 L 435 -223 L 432 -220#@$P~show~0~3~425~-270~90~gge8974~0^^425~-270^^M 425 -270 v 10~#000000^^1~428~-258~270~3~end~~~#000000^^0~424~-260~270~3~start~~~#333333^^0~425~-263^^0~M 422 -260 L 425 -257 L 428 -260#@$P~show~0~4~425~-210~270~gge8995~0^^425~-210^^M 425 -210 v -10~#000000^^1~428~-222~270~4~start~~~#000000^^0~424~-220~270~4~end~~~#333333^^0~425~-217^^0~M 428 -220 L 425 -223 L 422 -220#@$P~show~0~5~415~-270~90~gge9016~0^^415~-270^^M 415 -270 v 10~#000000^^1~418~-258~270~5~end~~~#000000^^0~414~-260~270~5~start~~~#333333^^0~415~-263^^0~M 412 -260 L 415 -257 L 418 -260#@$P~show~0~6~415~-210~270~gge9037~0^^415~-210^^M 415 -210 v -10~#000000^^1~418~-222~270~6~start~~~#000000^^0~414~-220~270~6~end~~~#333333^^0~415~-217^^0~M 418 -220 L 415 -223 L 412 -220#@$P~show~0~7~405~-270~90~gge9058~0^^405~-270^^M 405 -270 v 10~#000000^^1~408~-258~270~7~end~~~#000000^^0~404~-260~270~7~start~~~#333333^^0~405~-263^^0~M 402 -260 L 405 -257 L 408 -260#@$P~show~0~8~405~-210~270~gge9079~0^^405~-210^^M 405 -210 v -10~#000000^^1~408~-222~270~8~start~~~#000000^^0~404~-220~270~8~end~~~#333333^^0~405~-217^^0~M 408 -220 L 405 -223 L 402 -220#@$P~show~0~9~395~-270~90~gge9100~0^^395~-270^^M 395 -270 v 10~#000000^^1~398~-258~270~9~end~~~#000000^^0~394~-260~270~9~start~~~#333333^^0~395~-263^^0~M 392 -260 L 395 -257 L 398 -260#@$P~show~0~10~395~-210~270~gge9121~0^^395~-210^^M 395 -210 v -10~#000000^^1~398~-222~270~10~start~~~#000000^^0~394~-220~270~10~end~~~#333333^^0~395~-217^^0~M 398 -220 L 395 -223 L 392 -220#@$P~show~0~11~385~-270~90~gge9142~0^^385~-270^^M 385 -270 v 10~#000000^^1~388~-258~270~11~end~~~#000000^^0~384~-260~270~11~start~~~#333333^^0~385~-263^^0~M 382 -260 L 385 -257 L 388 -260#@$P~show~0~12~385~-210~270~gge9163~0^^385~-210^^M 385 -210 v -10~#000000^^1~388~-222~270~12~start~~~#000000^^0~384~-220~270~12~end~~~#333333^^0~385~-217^^0~M 388 -220 L 385 -223 L 382 -220","LIB~690~-240~package`IDC-SMD_12P-P2.54_B-3000N12P-0110`BOM_Supplier Part`C124388`BOM_Supplier`LCSC`BOM_Manufacturer``BOM_Manufacturer Part``Contributor`LCEDA_Lib`spicePre`J`spiceSymbolName`HDR-M-2.54_2x6`~270~0~ggef1f2968d3c1f3d3e~bea2cfdd652a47aea8abfec759ee6783~29a9ed4bd7e44ab5b1151bac840be6d3~0~~yes~yes~~1586865575~d58f56ee75664e40ba2e2cb607bf3dd5#@$T~N~724~-227.81~0~#000080~Arial~~~~~comment~HDR-M-2.54_2x6~1~start~gge9190~0~#@$T~P~724~-236.67~0~#000080~Arial~~~~~comment~J2~1~start~gge9196~0~#@$R~650~-260~2~2~72~40~#880000~1~0~none~gge9202~0~#@$P~show~0~1~710~-270~90~gge9205~0^^710~-270^^M 710 -270 v 10~#000000^^1~713~-258~270~1~end~~~#000000^^0~709~-260~270~1~start~~~#333333^^0~710~-263^^0~M 707 -260 L 710 -257 L 713 -260#@$P~show~0~2~710~-210~270~gge9226~0^^710~-210^^M 710 -210 v -10~#000000^^1~713~-222~270~2~start~~~#000000^^0~709~-220~270~2~end~~~#333333^^0~710~-217^^0~M 713 -220 L 710 -223 L 707 -220#@$P~show~0~3~700~-270~90~gge9247~0^^700~-270^^M 700 -270 v 10~#000000^^1~703~-258~270~3~end~~~#000000^^0~699~-260~270~3~start~~~#333333^^0~700~-263^^0~M 697 -260 L 700 -257 L 703 -260#@$P~show~0~4~700~-210~270~gge9268~0^^700~-210^^M 700 -210 v -10~#000000^^1~703~-222~270~4~start~~~#000000^^0~699~-220~270~4~end~~~#333333^^0~700~-217^^0~M 703 -220 L 700 -223 L 697 -220#@$P~show~0~5~690~-270~90~gge9289~0^^690~-270^^M 690 -270 v 10~#000000^^1~693~-258~270~5~end~~~#000000^^0~689~-260~270~5~start~~~#333333^^0~690~-263^^0~M 687 -260 L 690 -257 L 693 -260#@$P~show~0~6~690~-210~270~gge9310~0^^690~-210^^M 690 -210 v -10~#000000^^1~693~-222~270~6~start~~~#000000^^0~689~-220~270~6~end~~~#333333^^0~690~-217^^0~M 693 -220 L 690 -223 L 687 -220#@$P~show~0~7~680~-270~90~gge9331~0^^680~-270^^M 680 -270 v 10~#000000^^1~683~-258~270~7~end~~~#000000^^0~679~-260~270~7~start~~~#333333^^0~680~-263^^0~M 677 -260 L 680 -257 L 683 -260#@$P~show~0~8~680~-210~270~gge9352~0^^680~-210^^M 680 -210 v -10~#000000^^1~683~-222~270~8~start~~~#000000^^0~679~-220~270~8~end~~~#333333^^0~680~-217^^0~M 683 -220 L 680 -223 L 677 -220#@$P~show~0~9~670~-270~90~gge9373~0^^670~-270^^M 670 -270 v 10~#000000^^1~673~-258~270~9~end~~~#000000^^0~669~-260~270~9~start~~~#333333^^0~670~-263^^0~M 667 -260 L 670 -257 L 673 -260#@$P~show~0~10~670~-210~270~gge9394~0^^670~-210^^M 670 -210 v -10~#000000^^1~673~-222~270~10~start~~~#000000^^0~669~-220~270~10~end~~~#333333^^0~670~-217^^0~M 673 -220 L 670 -223 L 667 -220#@$P~show~0~11~660~-270~90~gge9415~0^^660~-270^^M 660 -270 v 10~#000000^^1~663~-258~270~11~end~~~#000000^^0~659~-260~270~11~start~~~#333333^^0~660~-263^^0~M 657 -260 L 660 -257 L 663 -260#@$P~show~0~12~660~-210~270~gge9436~0^^660~-210^^M 660 -210 v -10~#000000^^1~663~-222~270~12~start~~~#000000^^0~659~-220~270~12~end~~~#333333^^0~660~-217^^0~M 663 -220 L 660 -223 L 657 -220","F~part_netLabel_gnD~635~-345~0~gge9730~~0^^635~-345^^GND~#000000~622~-319~0~start~1~Times New Roman~9pt~flag_gge136^^PL~635 -335 635 -345~#000000~1~0~transparent~gge9742~0^^PL~626 -335 644 -335~#000000~1~0~transparent~gge9745~0^^PL~629 -333 641 -333~#000000~1~0~transparent~gge9748~0^^PL~632 -331 638 -331~#000000~1~0~transparent~gge9751~0^^PL~634 -329 636 -329~#000000~1~0~transparent~gge9754~0","W~570 -415 570 -425 635 -425 635 -345 570 -345 570 -355~#008800~1~0~none~gge9784~0","F~part_netLabel_+5V~580~-455~0~gge9791~~0^^580~-455^^+5V~#000000~570~-467~0~start~1~Times New Roman~9pt~flag_gge139^^PL~580 -465 580 -455~#000000~1~0~none~gge9803~0^^PL~575 -465 585 -465~#000000~1~0~transparent~gge9806~0","W~580 -415 580 -455~#008800~1~0~none~gge9827~0","W~435 -270 435 -290 540 -290 540 -270~#008800~1~0~none~gge9854~0","W~530 -270 530 -280 475 -280 475 -200 425 -200 425 -210~#008800~1~0~none~gge9860~0","W~520 -270 520 -300 405 -300 405 -270~#008800~1~0~none~gge9863~0","W~395 -210 395 -190 485 -190 485 -270 510 -270~#008800~1~0~none~gge9866~0","O~510~-415~gge9869~M 506 -419 L 514 -411 M 514 -419 L 506 -411~#33cc33~0","O~540~-415~gge9887~M 536 -419 L 544 -411 M 544 -419 L 536 -411~#33cc33~0","O~550~-415~gge9893~M 546 -419 L 554 -411 M 554 -419 L 546 -411~#33cc33~0","O~560~-415~gge9899~M 556 -419 L 564 -411 M 564 -419 L 556 -411~#33cc33~0","O~560~-355~gge9905~M 556 -359 L 564 -351 M 564 -359 L 556 -351~#33cc33~0","O~550~-355~gge9911~M 546 -359 L 554 -351 M 554 -359 L 546 -351~#33cc33~0","O~540~-355~gge9917~M 536 -359 L 544 -351 M 544 -359 L 536 -351~#33cc33~0","O~530~-355~gge9923~M 526 -359 L 534 -351 M 534 -359 L 526 -351~#33cc33~0","O~520~-355~gge9929~M 516 -359 L 524 -351 M 524 -359 L 516 -351~#33cc33~0","O~510~-355~gge9935~M 506 -359 L 514 -351 M 514 -359 L 506 -351~#33cc33~0","O~570~-210~gge9953~M 566 -214 L 574 -206 M 574 -214 L 566 -206~#33cc33~0","O~560~-210~gge9959~M 556 -214 L 564 -206 M 564 -214 L 556 -206~#33cc33~0","O~550~-210~gge9989~M 546 -214 L 554 -206 M 554 -214 L 546 -206~#33cc33~0","W~710 -270 710 -280 580 -280 580 -270~#008800~1~0~none~gge10003~0","W~570 -270 570 -285 730 -285 730 -200 700 -200 700 -210~#008800~1~0~none~gge10006~0","W~560 -270 560 -290 680 -290 680 -270~#008800~1~0~none~gge10009~0","W~550 -270 550 -295 735 -295 735 -195 670 -195 670 -210~#008800~1~0~none~gge10012~0","F~part_netLabel_gnD~335~-250~0~gge10015~~0^^335~-250^^GND~#000000~322~-224~0~start~1~Times New Roman~9pt~flag_gge142^^PL~335 -240 335 -250~#000000~1~0~transparent~gge10027~0^^PL~326 -240 344 -240~#000000~1~0~transparent~gge10030~0^^PL~329 -238 341 -238~#000000~1~0~transparent~gge10033~0^^PL~332 -236 338 -236~#000000~1~0~transparent~gge10036~0^^PL~334 -234 336 -234~#000000~1~0~transparent~gge10039~0","W~415 -210 415 -200 360 -200 360 -250 335 -250 335 -280 425 -280 425 -270~#008800~1~0~none~gge10069~0","W~395 -270 395 -280~#008800~1~0~none~gge10076~0","W~385 -210 385 -200~#008800~1~0~none~gge10083~0","F~part_netLabel_VCC~335~-305~0~gge10087~~0^^335~-305^^VCC~#000000~323~-317~0~start~1~Times New Roman~9pt~flag_gge145^^PL~335 -315 335 -305~#000000~1~0~none~gge10099~0^^PL~330 -315 340 -315~#000000~1~0~transparent~gge10102~0","W~385 -270 385 -305 335 -305~#008800~1~0~none~gge10123~0","W~415 -270 415 -290 385 -290~#008800~1~0~none~gge10126~0","W~405 -210 405 -180 370 -180 370 -305~#008800~1~0~none~gge10130~0","W~435 -210 435 -180 405 -180~#008800~1~0~none~gge10134~0","F~part_netLabel_VCC~785~-305~0~gge10138~~0^^785~-305^^VCC~#000000~773~-317~0~start~1~Times New Roman~9pt~flag_gge148^^PL~785 -315 785 -305~#000000~1~0~none~gge10150~0^^PL~780 -315 790 -315~#000000~1~0~transparent~gge10153~0","W~690 -270 690 -305 785 -305 785 -185 710 -185 710 -210~#008800~1~0~none~gge10174~0","W~680 -210 680 -185 710 -185~#008800~1~0~none~gge10181~0","W~660 -270 660 -305 690 -305~#008800~1~0~none~gge10185~0","F~part_netLabel_gnD~625~-175~0~gge10189~~0^^625~-175^^GND~#000000~612~-149~0~start~1~Times New Roman~9pt~flag_gge151^^PL~625 -165 625 -175~#000000~1~0~transparent~gge10201~0^^PL~616 -165 634 -165~#000000~1~0~transparent~gge10204~0^^PL~619 -163 631 -163~#000000~1~0~transparent~gge10207~0^^PL~622 -161 628 -161~#000000~1~0~transparent~gge10210~0^^PL~624 -159 626 -159~#000000~1~0~transparent~gge10213~0","W~625 -175 625 -275 670 -275 670 -270~#008800~1~0~none~gge10246~0","W~700 -270 700 -275 670 -275~#008800~1~0~none~gge10256~0","W~690 -210 690 -175 625 -175~#008800~1~0~none~gge10272~0","W~660 -210 660 -175~#008800~1~0~none~gge10275~0","O~510~-210~gge10285~M 506 -214 L 514 -206 M 514 -214 L 506 -206~#33cc33~0","O~520~-210~gge10291~M 516 -214 L 524 -206 M 524 -214 L 516 -206~#33cc33~0","O~530~-210~gge10297~M 526 -214 L 534 -206 M 534 -214 L 526 -206~#33cc33~0","O~540~-210~gge10303~M 536 -214 L 544 -206 M 544 -214 L 536 -206~#33cc33~0","O~580~-355~gge10315~M 576 -359 L 584 -351 M 584 -359 L 576 -351~#33cc33~0","LIB~320~-555~package`HDR-F-2.54_1X5`BOM_Supplier Part`C50950`BOM_Supplier`LCSC`BOM_Manufacturer``BOM_Manufacturer Part``Contributor`LCEDA_Lib`spicePre`H`spiceSymbolName`HDR-F-2.54_1x5`~270~0~gge7a4285b158380f03~4bb67b2ac49a4595b3ed10b792fcbebb~65b1ae295679465fabfb76c1fc7cc7e6~0~~yes~yes~~1586865313~#@$T~N~352~-548.64~0~#000080~Arial~~~~~comment~HDR-F-2.54_1x5~1~start~gge10328~0~#@$T~P~352~-557.79~0~#000080~Arial~~~~~comment~H3~1~start~gge10334~0~#@$R~290~-565~2~2~60~20~#880000~1~0~none~gge10340~0~#@$P~show~0~1~340~-575~90~gge10343~0^^340~-575^^M 340 -575 v 10~#000000^^1~344~-561.3~270~1~end~~~#000000^^0~339~-565.5~270~1~start~~~#000000^^0~340~-568^^0~M 337 -565 L 340 -562 L 343 -565#@$P~show~0~2~330~-575~90~gge10364~0^^330~-575^^M 330 -575 v 10~#000000^^1~334~-561.3~270~2~end~~~#000000^^0~329~-565.5~270~2~start~~~#000000^^0~330~-568^^0~M 327 -565 L 330 -562 L 333 -565#@$P~show~0~3~320~-575~90~gge10385~0^^320~-575^^M 320 -575 v 10~#000000^^1~324~-561.3~270~3~end~~~#000000^^0~319~-565.5~270~3~start~~~#000000^^0~320~-568^^0~M 317 -565 L 320 -562 L 323 -565#@$P~show~0~4~310~-575~90~gge10406~0^^310~-575^^M 310 -575 v 10~#000000^^1~314~-561.3~270~4~end~~~#000000^^0~309~-565.5~270~4~start~~~#000000^^0~310~-568^^0~M 307 -565 L 310 -562 L 313 -565#@$P~show~0~5~300~-575~90~gge10427~0^^300~-575^^M 300 -575 v 10~#000000^^1~304~-561.3~270~5~end~~~#000000^^0~299~-565.5~270~5~start~~~#000000^^0~300~-568^^0~M 297 -565 L 300 -562 L 303 -565","F~part_netLabel_+5V~580~-190~180~gge10448~~0^^580~-190^^+3V3~#000000~569.12~-169~0~start~1~Times New Roman~9pt~gge10454^^PL~580 -180 580 -190~#000000~1~0~none~gge10460~0^^PL~585 -180 575 -180~#000000~1~0~transparent~gge10463~0","W~580 -190 580 -210~#008800~1~0~none~gge10484~0","F~part_netLabel_+5V~340~-590~0~gge10490~~0^^340~-590^^+3V3~#000000~326.29~-603.36~0~start~1~Times New Roman~9pt~gge10496^^PL~340 -600 340 -590~#000000~1~0~none~gge10502~0^^PL~335 -600 345 -600~#000000~1~0~transparent~gge10505~0","W~340 -590 340 -575~#008800~1~0~none~gge10508~0","F~part_netLabel_gnD~330~-615~180~gge10514~~0^^330~-615^^GND~#000000~317.01~-634.36~0~start~1~Times New Roman~9pt~gge10520^^PL~330 -625 330 -615~#000000~1~0~transparent~gge10526~0^^PL~339 -625 321 -625~#000000~1~0~transparent~gge10529~0^^PL~336 -627 324 -627~#000000~1~0~transparent~gge10532~0^^PL~333 -629 327 -629~#000000~1~0~transparent~gge10535~0^^PL~331 -631 329 -631~#000000~1~0~transparent~gge10538~0","W~330 -615 330 -575~#008800~1~0~none~gge10541~0","F~part_netLabel_netPort~520~-430~270~gge10547~~0^^520~-430^^scl~#0000FF~524.11~-452~270~~1~Times New Roman~8pt~gge10553^^PL~520 -430 515 -435 515 -450 525 -450 525 -435 520 -430~#0000FF~1~0~transparent~gge10559~0","F~part_netLabel_netPort~530~-430~270~gge10562~~0^^530~-430^^sda~#0000FF~534.11~-452~270~~1~Times New Roman~8pt~gge10568^^PL~530 -430 525 -435 525 -450 535 -450 535 -435 530 -430~#0000FF~1~0~transparent~gge10574~0","W~530 -415 530 -430~#008800~1~0~none~gge10595~0","W~520 -415 520 -430~#008800~1~0~none~gge10598~0","O~300~-575~gge10604~M 296 -579 L 304 -571 M 304 -579 L 296 -571~#33cc33~0","F~part_netLabel_netPort~310~-585~270~gge10619~~0^^310~-585^^sda~#0000FF~314.11~-607~270~~1~Times New Roman~8pt~gge10625^^PL~310 -585 305 -590 305 -605 315 -605 315 -590 310 -585~#0000FF~1~0~transparent~gge10631~0","F~part_netLabel_netPort~320~-585~270~gge10637~~0^^320~-585^^scl~#0000FF~324.11~-607~270~~1~Times New Roman~8pt~gge10643^^PL~320 -585 315 -590 315 -605 325 -605 325 -590 320 -585~#0000FF~1~0~transparent~gge10649~0","W~320 -585 320 -575~#008800~1~0~none~gge10652~0","W~310 -585 310 -575~#008800~1~0~none~gge10658~0","J~790~-585~2.5~#CC0000~gge6571~0","J~580~-575~2.5~#CC0000~gge6581~0","J~790~-575~2.5~#CC0000~gge6585~0","J~730~-575~2.5~#CC0000~gge6589~0","J~830~-585~2.5~#CC0000~gge6593~0","J~890~-630~2.5~#CC0000~gge6600~0","J~1035~-525~2.5~#CC0000~gge6715~0","J~1035~-555~2.5~#CC0000~gge6716~0","J~635~-345~2.5~#CC0000~gge10000~0","J~335~-250~2.5~#CC0000~gge10073~0","J~395~-280~2.5~#CC0000~gge10077~0","J~385~-200~2.5~#CC0000~gge10084~0","J~370~-305~2.5~#CC0000~gge10131~0","J~405~-180~2.5~#CC0000~gge10135~0","J~785~-305~2.5~#CC0000~gge10178~0","J~710~-185~2.5~#CC0000~gge10182~0","J~690~-305~2.5~#CC0000~gge10186~0","J~670~-275~2.5~#CC0000~gge10257~0","J~660~-175~2.5~#CC0000~gge10276~0","J~625~-175~2.5~#CC0000~gge10280~0","J~385~-290~2.5~#CC0000~gge10282~0"],"BBox":{"x":0,"y":-806.1,"width":1149,"height":806.7},"colors":{"select":"#FF0000"}}}],"docType":5,"title":"fluffbug-v8.2","name":"fluffbug-v8.2"} -------------------------------------------------------------------------------- /fluffbug-v8.2/fluffbug-v8.2-legs.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 21 | 23 | 24 | 26 | image/svg+xml 27 | 29 | 30 | 31 | 32 | 34 | 42 | 47 | 48 | 56 | 61 | 62 | 70 | 75 | 76 | 84 | 89 | 90 | 92 | 94 | 96 | 98 | 100 | 102 | 104 | 106 | 108 | 110 | 112 | 114 | 116 | 118 | 120 | 122 | 124 | 126 | 128 | 130 | 132 | 140 | 145 | 146 | 154 | 159 | 160 | 168 | 173 | 174 | 182 | 187 | 188 | 190 | 192 | 194 | 196 | 198 | 200 | 202 | 204 | 206 | 208 | 210 | 212 | 214 | 216 | 218 | 220 | 222 | 224 | 226 | 228 | 230 | 231 | 268 | 272 | 276 | 280 | 284 | 288 | 292 | 296 | 301 | 306 | 311 | 316 | 321 | 325 | 329 | 334 | 338 | 342 | 346 | 350 | 356 | 362 | 368 | 374 | 380 | 386 | 392 | 396 | 400 | 404 | 408 | 414 | 420 | 426 | 432 | 438 | 444 | 450 | 454 | 458 | 462 | 466 | 472 | 478 | 484 | 490 | 496 | 499 | 504 | 509 | 514 | 23mm 526 | 527 | 528 | --------------------------------------------------------------------------------