├── RigolDS1.tar.xz ├── demodulator.pdf ├── screenshots ├── Screenshot_20241106-162442.png ├── Screenshot_20241106-162632.png ├── Screenshot_20241106-162636.png ├── Screenshot_20241106-162829.png └── Screenshot_20241106-162841.png ├── monitor.yaml ├── echo └── echo.ino ├── demodulate.py ├── decode_bytes.py ├── messages.txt ├── .gitignore ├── components.kicad_sym ├── ascii.txt ├── parser.py ├── demodulator.kicad_pro ├── LICENSE ├── README.md ├── parser2.py ├── registers.txt ├── protocol.proto.xml └── demodulator.kicad_sch /RigolDS1.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pepijndevos/R-Bus/HEAD/RigolDS1.tar.xz -------------------------------------------------------------------------------- /demodulator.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pepijndevos/R-Bus/HEAD/demodulator.pdf -------------------------------------------------------------------------------- /screenshots/Screenshot_20241106-162442.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pepijndevos/R-Bus/HEAD/screenshots/Screenshot_20241106-162442.png -------------------------------------------------------------------------------- /screenshots/Screenshot_20241106-162632.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pepijndevos/R-Bus/HEAD/screenshots/Screenshot_20241106-162632.png -------------------------------------------------------------------------------- /screenshots/Screenshot_20241106-162636.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pepijndevos/R-Bus/HEAD/screenshots/Screenshot_20241106-162636.png -------------------------------------------------------------------------------- /screenshots/Screenshot_20241106-162829.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pepijndevos/R-Bus/HEAD/screenshots/Screenshot_20241106-162829.png -------------------------------------------------------------------------------- /screenshots/Screenshot_20241106-162841.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pepijndevos/R-Bus/HEAD/screenshots/Screenshot_20241106-162841.png -------------------------------------------------------------------------------- /monitor.yaml: -------------------------------------------------------------------------------- 1 | esphome: 2 | name: rbus-monitor 3 | 4 | esp32: 5 | board: featheresp32-s2 6 | framework: 7 | type: esp-idf 8 | 9 | # Enable logging 10 | logger: 11 | 12 | # Enable Home Assistant API 13 | api: 14 | password: "" 15 | 16 | ota: 17 | - platform: esphome 18 | password: "" 19 | 20 | uart: 21 | rx_pin: GPIO38 22 | baud_rate: 9600 23 | debug: 24 | direction: RX 25 | dummy_receiver: true 26 | 27 | wifi: 28 | ssid: !secret ssid 29 | password: !secret password 30 | 31 | # Enable fallback hotspot (captive portal) in case wifi connection fails 32 | ap: 33 | ssid: "Rbus-Monitor Fallback Hotspot" 34 | password: "tNiLpmD1D2qV" 35 | 36 | captive_portal: 37 | -------------------------------------------------------------------------------- /echo/echo.ino: -------------------------------------------------------------------------------- 1 | /* UART Example, any character received on either the real 2 | serial port, or USB serial (or emulated serial to the 3 | Arduino Serial Monitor when using non-serial USB types) 4 | is printed as a message to both ports. 5 | 6 | This example code is in the public domain. 7 | */ 8 | 9 | // set this to the hardware serial port you wish to use 10 | #define HWSERIAL Serial1 11 | 12 | void setup() 13 | { 14 | Serial.begin(9600); 15 | HWSERIAL.begin(9600); 16 | } 17 | 18 | void loop() 19 | { 20 | int incomingByte; 21 | if (HWSERIAL.available() > 0) 22 | { 23 | incomingByte = HWSERIAL.read(); 24 | Serial.print(micros()); 25 | Serial.print(" "); 26 | Serial.println(incomingByte, HEX); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /demodulate.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | import numpy as np 3 | from scipy import signal 4 | import matplotlib.pyplot as plt 5 | 6 | # Read the CSV file 7 | df = pd.read_csv('RigolDS1.csv') 8 | 9 | # Assuming the data is in a column named 'signal' 10 | sig = df['CH1(V)'].values#[12020000:12030000] 11 | 12 | # Generate time array 13 | t = np.arange(len(sig)) 14 | 15 | # Create sin and cos with a period of 10 samples 16 | f = 0.1 17 | sin_wave = np.sin(2 * np.pi * t * f) 18 | cos_wave = np.cos(2 * np.pi * t * f) 19 | 20 | # Demodulate into I and Q components 21 | I = sig * sin_wave 22 | Q = sig * cos_wave 23 | 24 | b, a = signal.butter(5, f) 25 | If = signal.lfilter(b, a, I) 26 | Qf = signal.lfilter(b, a, Q) 27 | 28 | # Create a new DataFrame with the results 29 | result_df = pd.DataFrame({ 30 | 'I': If, 31 | 'Q': Qf, 32 | #'sin': sin_wave, 33 | #'sig': sig, 34 | }) 35 | 36 | # Write the results to a new CSV file 37 | result_df.to_csv('demodulated_output.csv', index=False) 38 | 39 | #result_df.plot() 40 | #plt.show() -------------------------------------------------------------------------------- /decode_bytes.py: -------------------------------------------------------------------------------- 1 | import xml.etree.ElementTree as ET 2 | 3 | def invert_bits(bits): 4 | return ''.join('1' if bit == '0' else '0' for bit in bits) 5 | 6 | def extract_bytes(inverted_bits): 7 | bytes_list = [] 8 | for i in range(0, len(inverted_bits), 10): 9 | frame = inverted_bits[i:i+10] 10 | if len(frame) == 10: 11 | start_bit, data, stop_bit = frame[0], frame[1:9], frame[9] 12 | assert start_bit == '0', f"Invalid start bit at position {i}" 13 | assert stop_bit == '1', f"Invalid stop bit at position {i+9}" 14 | byte = int(data, 2) 15 | bytes_list.append(byte) 16 | return bytes_list 17 | 18 | # Parse the XML file 19 | tree = ET.parse('protocol.proto.xml') 20 | root = tree.getroot() 21 | 22 | # Find all message elements 23 | messages = root.findall('.//message') 24 | # Iterate over all messages, invert bits, and extract bytes 25 | for i, message in enumerate(messages, 1): 26 | bits = message.get('bits') 27 | inverted_bits = invert_bits(bits) 28 | 29 | try: 30 | extracted_bytes = extract_bytes(inverted_bits) 31 | except AssertionError as e: 32 | print(f"# Error in message {i}: {str(e)}\n# ", end="") 33 | for i in range(0, len(bits), 10): 34 | print(bits[i:i+10], end=" ") 35 | extracted_bytes = [] 36 | 37 | # print(f"Message {i}:") 38 | # print(bits) 39 | # print(inverted_bits) 40 | print(' '.join(f'{byte:02X}' for byte in extracted_bytes)) 41 | 42 | print(f"# Total messages processed: {len(messages)}") -------------------------------------------------------------------------------- /messages.txt: -------------------------------------------------------------------------------- 1 | 80 00 00 00 A0 5F 00 80 04 40 80 D3 8F 2 | 80 00 80 00 D0 CF 80 7F 04 40 80 17 05 6C 20 A4 5C E9 90 3 | 80 00 00 00 A0 5F 00 C0 04 80 08 F1 0C 4 | 80 00 80 00 90 AF 40 7F 04 80 08 88 00 90 60 9B E6 5 | 80 00 00 00 A0 5F 00 C0 08 C0 80 37 8F 6 | 80 00 80 00 E0 EF 80 7F 08 C0 80 FF FF A1 39 7 | 80 00 00 00 A0 5F 00 80 0A BC 80 07 87 8 | 80 00 80 00 60 1F 80 7F 0A BC 80 A0 79 E3 9 | 80 00 00 00 A0 5F 00 C0 04 20 80 CB CF 10 | 80 00 80 00 90 AF 80 7F 04 20 80 FF FF FF FF A1 B0 11 | 80 00 00 00 A0 5F 00 80 0A E9 00 01 7A 12 | 80 00 80 00 90 AF 40 7F 0A E9 00 00 00 40 60 E7 13 13 | 80 00 00 00 A0 5F 00 C0 04 40 80 CE 0F 14 | 80 00 80 00 D0 CF 80 7F 04 40 80 00 00 00 00 00 00 36 52 15 | 80 00 00 00 A0 5F 00 80 0A E9 00 01 7A 16 | 80 00 80 00 90 AF 40 7F 0A E9 00 00 00 40 60 E7 13 17 | 80 00 00 00 A0 5F 00 80 0A E9 00 01 7A 18 | 80 00 80 00 90 AF 40 7F 0A E9 00 00 00 40 60 E7 13 19 | 80 00 00 00 D8 27 10 A0 00 80 2C 08 80 00 80 2C C6 80 00 80 2C F0 80 00 80 2C 26 80 00 80 2A 18 80 0B D9 20 | 80 00 80 10 22 4D 80 90 A0 80 80 2C 08 80 00 00 A0 C2 12 00 00 00 80 80 2C C6 80 00 00 80 00 80 80 2C F0 80 00 00 28 5A F6 76 A6 8C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 80 2C 26 80 00 00 20 FD 95 00 00 80 80 2A 18 22 EE 21 | # Error in message 21: Invalid start bit at position 100 22 | # 1011111110 1111111110 1111111110 1111100100 1101111110 1010011010 1111111110 1101111110 1110100100 1101011010 0000001011 1111101111 1111101011 1111101111 0111101010 1111101011 1000001101 1111001011 1111101111 1111101111 1111101011 1111101011 1111101001 1101001001 1000000000 23 | 80 00 00 00 A0 5F 00 80 0A E9 00 01 7A 24 | 80 00 80 00 90 AF 40 7F 0A E9 00 00 00 40 60 E7 13 25 | 80 00 00 00 A0 5F 00 80 0A E9 00 01 7A 26 | 80 00 80 00 90 AF 40 7F 0A E9 00 00 00 40 60 E7 13 27 | 80 00 00 00 A0 5F 00 80 0A E9 00 01 7A 28 | 80 00 80 00 90 AF 40 7F 0A E9 00 00 00 40 60 E7 13 29 | 80 00 00 00 A0 5F 00 C0 0A BC 80 1A 07 30 | 80 00 80 00 60 1F 80 7F 0A BC 80 00 B9 E0 31 | 80 00 00 00 A0 5F 00 80 2C C4 80 F9 95 32 | 80 00 80 00 D0 CF 80 7F 2C C4 80 00 00 00 00 00 00 1D 6E 33 | 80 00 00 00 A0 5F 00 80 2C 44 80 F0 15 34 | 80 00 80 00 D0 CF 80 7F 2C 44 80 00 00 00 00 00 00 2E ED 35 | 80 00 00 00 A0 5F 00 80 2C 84 80 FF 15 36 | 80 00 80 00 D0 CF 80 7F 2C 84 80 00 00 00 00 00 00 86 EF 37 | 80 00 00 00 A0 5F 00 80 2A 74 80 88 B5 38 | 80 00 80 00 E0 EF 80 7F 2A 74 80 D2 20 A6 CA 39 | 80 00 00 00 E0 1F 20 80 2A 2C 80 C0 10 D3 E6 40 | 80 00 80 00 A0 9F A0 7F 2A 2C 80 63 EA 41 | 80 00 00 00 A0 5F 00 80 2A 20 80 8E 4D 42 | 80 00 80 00 E0 EF 80 7F 2A 20 80 13 00 71 DC 43 | 80 00 00 00 A0 5F 00 80 2C 1A 80 F6 D1 44 | 80 00 80 00 60 1F 80 7F 2C 1A 80 00 4D 10 45 | 80 00 00 0B 80 74 20 1E AE 46 | 80 00 80 0B 80 B4 A0 11 91 47 | 80 00 00 00 A0 5F 00 80 2A 98 80 84 DD 48 | 80 00 80 00 E0 EF 80 7F 2A 98 80 13 00 47 BC 49 | 80 00 00 00 A0 5F 00 80 2A 08 80 8E BD 50 | 80 00 80 00 60 1F 80 7F 2A 08 80 80 26 EA 51 | 80 00 00 00 A0 5F 00 80 08 C0 80 2A 0F 52 | 80 00 80 00 E0 EF 80 7F 08 C0 80 FF FF A1 39 53 | 80 00 00 00 A0 5F 00 80 04 20 80 D6 4F 54 | 80 00 80 00 90 AF 80 7F 04 20 80 FF FF FF FF A1 B0 55 | 80 00 00 00 A0 5F 00 80 0C C4 00 79 94 56 | 80 00 80 00 D0 CF 80 7F 0C C4 00 13 81 59 40 8C 5C AE 46 57 | 80 00 00 00 A0 5F 00 80 04 40 80 D3 8F 58 | 80 00 80 00 D0 CF 80 7F 04 40 80 17 05 6C 20 A4 5C E9 90 59 | 80 00 00 00 A0 5F 00 80 0C C2 00 79 80 60 | 80 00 80 00 60 1F 80 7F 0C C2 00 80 AB 9D 61 | 80 00 00 00 A0 5F 00 C0 08 C0 80 37 8F 62 | 80 00 80 00 E0 EF 80 7F 08 C0 80 FF FF A1 39 63 | 80 00 00 00 A0 5F 00 C0 04 20 80 CB CF 64 | 80 00 80 00 90 AF 80 7F 04 20 80 FF FF FF FF A1 B0 65 | 80 00 00 00 A0 5F 00 C0 04 40 80 CE 0F 66 | 80 00 80 00 D0 CF 80 7F 04 40 80 00 00 00 00 00 00 36 52 67 | # Total messages processed: 65 68 | -------------------------------------------------------------------------------- /.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 | share/python-wheels/ 24 | *.egg-info/ 25 | .installed.cfg 26 | *.egg 27 | MANIFEST 28 | 29 | # PyInstaller 30 | # Usually these files are written by a python script from a template 31 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 32 | *.manifest 33 | *.spec 34 | 35 | # Installer logs 36 | pip-log.txt 37 | pip-delete-this-directory.txt 38 | 39 | # Unit test / coverage reports 40 | htmlcov/ 41 | .tox/ 42 | .nox/ 43 | .coverage 44 | .coverage.* 45 | .cache 46 | nosetests.xml 47 | coverage.xml 48 | *.cover 49 | *.py,cover 50 | .hypothesis/ 51 | .pytest_cache/ 52 | cover/ 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 | .pybuilder/ 76 | target/ 77 | 78 | # Jupyter Notebook 79 | .ipynb_checkpoints 80 | 81 | # IPython 82 | profile_default/ 83 | ipython_config.py 84 | 85 | # pyenv 86 | # For a library or package, you might want to ignore these files since the code is 87 | # intended to run in multiple environments; otherwise, check them in: 88 | # .python-version 89 | 90 | # pipenv 91 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 92 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 93 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 94 | # install all needed dependencies. 95 | #Pipfile.lock 96 | 97 | # poetry 98 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. 99 | # This is especially recommended for binary packages to ensure reproducibility, and is more 100 | # commonly ignored for libraries. 101 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control 102 | #poetry.lock 103 | 104 | # pdm 105 | # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. 106 | #pdm.lock 107 | # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it 108 | # in version control. 109 | # https://pdm.fming.dev/latest/usage/project/#working-with-version-control 110 | .pdm.toml 111 | .pdm-python 112 | .pdm-build/ 113 | 114 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm 115 | __pypackages__/ 116 | 117 | # Celery stuff 118 | celerybeat-schedule 119 | celerybeat.pid 120 | 121 | # SageMath parsed files 122 | *.sage.py 123 | 124 | # Environments 125 | .env 126 | .venv 127 | env/ 128 | venv/ 129 | ENV/ 130 | env.bak/ 131 | venv.bak/ 132 | 133 | # Spyder project settings 134 | .spyderproject 135 | .spyproject 136 | 137 | # Rope project settings 138 | .ropeproject 139 | 140 | # mkdocs documentation 141 | /site 142 | 143 | # mypy 144 | .mypy_cache/ 145 | .dmypy.json 146 | dmypy.json 147 | 148 | # Pyre type checker 149 | .pyre/ 150 | 151 | # pytype static type analyzer 152 | .pytype/ 153 | 154 | # Cython debug symbols 155 | cython_debug/ 156 | 157 | # PyCharm 158 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can 159 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore 160 | # and can be added to the global gitignore or merged into this file. For a more nuclear 161 | # option (not recommended) you can uncomment the following to ignore the entire idea folder. 162 | #.idea/ 163 | 164 | # For PCBs designed using KiCad: https://www.kicad.org/ 165 | # Format documentation: https://kicad.org/help/file-formats/ 166 | 167 | # Temporary files 168 | *.000 169 | *.bak 170 | *.bck 171 | *.kicad_pcb-bak 172 | *.kicad_sch-bak 173 | *-backups 174 | *.kicad_prl 175 | *.sch-bak 176 | *~ 177 | _autosave-* 178 | *.tmp 179 | *-save.pro 180 | *-save.kicad_pcb 181 | fp-info-cache 182 | 183 | # Netlist files (exported from Eeschema) 184 | *.net 185 | 186 | # Autorouter files (exported from Pcbnew) 187 | *.dsn 188 | *.ses 189 | 190 | # Exported BOM files 191 | *.xml 192 | *.csv 193 | 194 | -------------------------------------------------------------------------------- /components.kicad_sym: -------------------------------------------------------------------------------- 1 | (kicad_symbol_lib 2 | (version 20231120) 3 | (generator "kicad_symbol_editor") 4 | (generator_version "8.0") 5 | (symbol "MAX942" 6 | (pin_names 7 | (offset 0.127) 8 | ) 9 | (exclude_from_sim no) 10 | (in_bom yes) 11 | (on_board yes) 12 | (property "Reference" "U" 13 | (at 0 5.08 0) 14 | (effects 15 | (font 16 | (size 1.27 1.27) 17 | ) 18 | (justify left) 19 | ) 20 | ) 21 | (property "Value" "MAX942" 22 | (at 0 -5.08 0) 23 | (effects 24 | (font 25 | (size 1.27 1.27) 26 | ) 27 | (justify left) 28 | ) 29 | ) 30 | (property "Footprint" "" 31 | (at 0 0 0) 32 | (effects 33 | (font 34 | (size 1.27 1.27) 35 | ) 36 | (hide yes) 37 | ) 38 | ) 39 | (property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm358.pdf" 40 | (at 0 0 0) 41 | (effects 42 | (font 43 | (size 1.27 1.27) 44 | ) 45 | (hide yes) 46 | ) 47 | ) 48 | (property "Description" "Dual Operational Amplifiers, DIP-8/SOIC-8/TSSOP-8/VSSOP-8" 49 | (at 0 0 0) 50 | (effects 51 | (font 52 | (size 1.27 1.27) 53 | ) 54 | (hide yes) 55 | ) 56 | ) 57 | (property "ki_locked" "" 58 | (at 0 0 0) 59 | (effects 60 | (font 61 | (size 1.27 1.27) 62 | ) 63 | ) 64 | ) 65 | (property "ki_keywords" "dual opamp" 66 | (at 0 0 0) 67 | (effects 68 | (font 69 | (size 1.27 1.27) 70 | ) 71 | (hide yes) 72 | ) 73 | ) 74 | (property "ki_fp_filters" "SOIC*3.9x4.9mm*P1.27mm* DIP*W7.62mm* TO*99* OnSemi*Micro8* TSSOP*3x3mm*P0.65mm* TSSOP*4.4x3mm*P0.65mm* MSOP*3x3mm*P0.65mm* SSOP*3.9x4.9mm*P0.635mm* LFCSP*2x2mm*P0.5mm* *SIP* SOIC*5.3x6.2mm*P1.27mm*" 75 | (at 0 0 0) 76 | (effects 77 | (font 78 | (size 1.27 1.27) 79 | ) 80 | (hide yes) 81 | ) 82 | ) 83 | (symbol "MAX942_1_1" 84 | (polyline 85 | (pts 86 | (xy -5.08 5.08) (xy 5.08 0) (xy -5.08 -5.08) (xy -5.08 5.08) 87 | ) 88 | (stroke 89 | (width 0.254) 90 | (type default) 91 | ) 92 | (fill 93 | (type background) 94 | ) 95 | ) 96 | (pin output line 97 | (at 7.62 0 180) 98 | (length 2.54) 99 | (name "~" 100 | (effects 101 | (font 102 | (size 1.27 1.27) 103 | ) 104 | ) 105 | ) 106 | (number "1" 107 | (effects 108 | (font 109 | (size 1.27 1.27) 110 | ) 111 | ) 112 | ) 113 | ) 114 | (pin input line 115 | (at -7.62 -2.54 0) 116 | (length 2.54) 117 | (name "-" 118 | (effects 119 | (font 120 | (size 1.27 1.27) 121 | ) 122 | ) 123 | ) 124 | (number "2" 125 | (effects 126 | (font 127 | (size 1.27 1.27) 128 | ) 129 | ) 130 | ) 131 | ) 132 | (pin input line 133 | (at -7.62 2.54 0) 134 | (length 2.54) 135 | (name "+" 136 | (effects 137 | (font 138 | (size 1.27 1.27) 139 | ) 140 | ) 141 | ) 142 | (number "3" 143 | (effects 144 | (font 145 | (size 1.27 1.27) 146 | ) 147 | ) 148 | ) 149 | ) 150 | ) 151 | (symbol "MAX942_2_1" 152 | (polyline 153 | (pts 154 | (xy -5.08 5.08) (xy 5.08 0) (xy -5.08 -5.08) (xy -5.08 5.08) 155 | ) 156 | (stroke 157 | (width 0.254) 158 | (type default) 159 | ) 160 | (fill 161 | (type background) 162 | ) 163 | ) 164 | (pin input line 165 | (at -7.62 2.54 0) 166 | (length 2.54) 167 | (name "+" 168 | (effects 169 | (font 170 | (size 1.27 1.27) 171 | ) 172 | ) 173 | ) 174 | (number "5" 175 | (effects 176 | (font 177 | (size 1.27 1.27) 178 | ) 179 | ) 180 | ) 181 | ) 182 | (pin input line 183 | (at -7.62 -2.54 0) 184 | (length 2.54) 185 | (name "-" 186 | (effects 187 | (font 188 | (size 1.27 1.27) 189 | ) 190 | ) 191 | ) 192 | (number "6" 193 | (effects 194 | (font 195 | (size 1.27 1.27) 196 | ) 197 | ) 198 | ) 199 | ) 200 | (pin output line 201 | (at 7.62 0 180) 202 | (length 2.54) 203 | (name "~" 204 | (effects 205 | (font 206 | (size 1.27 1.27) 207 | ) 208 | ) 209 | ) 210 | (number "7" 211 | (effects 212 | (font 213 | (size 1.27 1.27) 214 | ) 215 | ) 216 | ) 217 | ) 218 | ) 219 | (symbol "MAX942_3_1" 220 | (pin power_in line 221 | (at -2.54 -7.62 90) 222 | (length 3.81) 223 | (name "V-" 224 | (effects 225 | (font 226 | (size 1.27 1.27) 227 | ) 228 | ) 229 | ) 230 | (number "4" 231 | (effects 232 | (font 233 | (size 1.27 1.27) 234 | ) 235 | ) 236 | ) 237 | ) 238 | (pin power_in line 239 | (at -2.54 7.62 270) 240 | (length 3.81) 241 | (name "V+" 242 | (effects 243 | (font 244 | (size 1.27 1.27) 245 | ) 246 | ) 247 | ) 248 | (number "8" 249 | (effects 250 | (font 251 | (size 1.27 1.27) 252 | ) 253 | ) 254 | ) 255 | ) 256 | ) 257 | ) 258 | ) 259 | -------------------------------------------------------------------------------- /ascii.txt: -------------------------------------------------------------------------------- 1 | Found 8180 messages: 2 | Reply b20109 ...4.....CH.....4c.......4.....Zone1.................4d..........\.D 3 | Request fa0001 T..q.........T.....;........4X.o.........4X...........xu.....-...........T..q.........T...dW........4UA..........4U..q........xu..... 4 | Reply b20109 ...0.....EHC-07................ ......... ......... ...........0.... 5 | Reply b78200 ..... .....7733242-06............P=....... .....a..... ........ 6 | Reply cc0903 ..0.....MK2.1................. ......... ......... 7 | Reply e501fe ..7711844-06..........GO 8 | Reply b20109 ...4.....CH.....4c.......4.....Zone1.................4d..........T.D 9 | Reply f301fe 0#..O..H:eq 10 | Reply f301fe 0#..U..H:/6 11 | Reply f301fe 0#.$...H:Z. 12 | Reply f301fe 0#.....H:HU 13 | Reply f301fe 0#.T...H:5. 14 | Reply b20109 ...0.....EHC-07................ ......... ......... ...........0.... 15 | Reply b78200 ..... .....7733242-06............P=....... .....a..... ........ 16 | Reply cc0903 ..0.....MK2.1................. ......... ......... 17 | Reply e501fe ..7711844-06..........GO 18 | Reply b20109 ...4.....CH.....4c.......4.....Zone1.................4d..........T.D 19 | Reply f301fe 0#..9..H:J. 20 | Reply f301fe 0#..f..H:-+ 21 | Reply f301fe 0#.....H:-. 22 | Reply f301fe 0#.....H:kX 23 | Reply b20109 ...0.....EHC-07................ ......... ......... ...........0.... 24 | Reply b78200 ..... .....7733242-06............P=....... .....a..... ........ 25 | Reply cc0903 ..0.....MK2.1................. ......... ......... 26 | Reply e501fe ..7711844-06..........GO 27 | Reply b20109 ...4.....CH.....4c.......4.....Zone1.................4d..........T.D 28 | Reply f301fe 0#..)..H:]w 29 | Reply b20109 ...0.....EHC-07................ ......... ......... ...........0.... 30 | Reply b78200 ..... .....7733242-06............P=....... .....a..... ........ 31 | Reply cc0903 ..0.....MK2.1................. ......... ......... 32 | Reply e501fe ..7711844-06..........GO 33 | Reply b20109 ...4.....CH.....4c.......4.....Zone1.................4d..........T.D 34 | Request 000320 ..s......... ........lJ.......xu.....-...........0#..)........0#.t...H:.G.......xu.....-..........xu.....-..........xu.....-......./.....0.... .... .... ....0.... ....P=... .... ..D.....D......0.....EHC-07................ ......... ......... ........ 35 | Reply b78200 ..... .....7733242-06............P=....... .....a..... ........ 36 | Reply cc0903 ..0.....MK2.1................. ......... ......... 37 | Reply e501fe ..7711844-06..........GO 38 | Reply 010001 T........D......4.....CH.....4c.......4.....Zone1.................4d..........T.Dw.....M...J........ 39 | Reply f301fe 0#..%..H:Vd 40 | Reply f301fe 0#.....H:}t 41 | Reply f301fe 0#.....H:2. 42 | Reply b20109 ...0.....EHC-07................ ......... ......... ...........0.... 43 | Reply b78200 ..... .....7733242-06............P=....... .....a..... ........ 44 | Reply cc0903 ..0.....MK2.1.................`......... ......... 45 | Reply e501fe ..7711844-06..........GO 46 | Reply b20109 ...4.....CH.....4c.......4.....Zone1.................4d..........T.D 47 | Reply f301fe 0#.l...H:M. 48 | Request fa0001 PE . 49 | Reply f301fe 0#.&...H:v........xu.....-..........xu..... 50 | Reply f301fe 0#..^..H:j. 51 | Reply f301fe 0#.V...H:[. 52 | Reply b20109 ...0.....EHC-07................ ......... ......... ...........0.... 53 | Reply b78200 ..... .....7733242-06............P=....... .....a..... ........ 54 | Reply cc0903 ..0.....MK2.1................. ......... ......... 55 | Reply e501fe ..7711844-06..........GO 56 | Reply b20109 ...4.....CH.....4c.......4.....Zone1.................4d..........T.D 57 | Reply f301fe 0#.D...H:%. 58 | Reply f301fe 0#.d!..H:l. 59 | Reply b20109 ...0.....EHC-07................ ......... ......... ...........0.... 60 | Reply b78200 ..... .....7733242-06............P=....... .....a..... ........ 61 | Reply cc0903 ..0.....MK2.1................. ......... ......... 62 | Reply e501fe ..7711844-06..........GO 63 | Reply b20109 ...4.....CH.....4c..@....4.....Zone1.................4d..........T.D 64 | Reply f301fe 0#.....H:pL 65 | Reply f301fe 0#.....H:__ 66 | Reply f301fe 0#.....H:~. 67 | Reply f301fe 0#.j3..H:55 68 | Reply ef01fe 4..Home......v 69 | Reply ef01fe 4..Sleep.....$A 70 | Reply ef01fe 4..Evening...FY 71 | Reply ef01fe 4..Work........ 72 | Reply ef01fe 4..Comfort....] 73 | Reply f301fe 0#..]..H:(. 74 | Reply f301fe 0#.....H:y. 75 | Reply b20109 ...0.....EHC-07................ ......... ......... ...........0.... 76 | Reply b78200 ..... .....7733242-06............P=....... .....a..... ........ 77 | Reply cc0903 ..0.....MK2.1................. ......... ......... 78 | Reply e501fe ..7711844-06..........GO 79 | Reply 010001 4....4d...T........D......4.....CH.....4c.......4.....Zone1.................4d..........T.Dw.....M. 80 | Reply ef01fe 4..Sleep....... 81 | Reply ef01fe 4..Evening..... 82 | Reply ef01fe 4..Work......|. 83 | Reply ef01fe 4..Comfort..... 84 | Reply f301fe ....6D%:.. 85 | Reply b20109 ...0.....EHC-07................ ......... ......... ...........0.... 86 | Reply b78200 ..... .....7733242-06............P=....... .....a..... ........ 87 | Reply cc0903 ..0.....MK2.1................. ......... ......... 88 | Reply e501fe ..7711844-06..........GO 89 | Reply b20109 ...4.....CH.....4c.......4.....Zone1.................4d..........T.D 90 | Reply f301fe 0#.v...H:@. 91 | Request 2e0478 u.....-...........4"...........4".......t.........4!...........4!.......a.........T............T...../......Dxu.....-...........4 92 | Reply f301fe 0#..6..H:A. 93 | Reply b20109 ...0.....EHC-07................ ......... ......... ...........0.... 94 | Reply b78200 ..... .....7733242-06............P=....... .....a..... ........ 95 | Reply cc0903 ..0.....MK2.1................. ......... ......... 96 | Reply e501fe ..7711844-06..........GO 97 | Reply b20109 ...4.....CH.....4c.......4.....Zone1.................4d..........T.D 98 | Reply f301fe 0#.....H:%. 99 | Reply f301fe 0#.....H:%. 100 | Reply f301fe 0#.Z...H:m. 101 | Reply b20109 ...0.....EHC-07................ ......... ......... ...........0.... 102 | Reply b78200 ..... .....7733242-06............P=....... .....a..... ........ 103 | Reply cc0903 ..0.....MK2.1................. ......... ......... 104 | Reply e501fe ..7711844-06..........GO 105 | Reply b20109 ...4.....CH.....4c.......4.....Zone1.................4d..........T.D 106 | Reply f301fe 0#.&o..H:p. 107 | Reply f301fe 0#.....H:pW 108 | Reply f301fe 0#.V...H:_D 109 | Reply f301fe 0#.D2..H:+. 110 | Reply b20109 ...0.....EHC-07................ ......... ......... ...........0.... 111 | Reply b78200 ..... .....7733242-06............P=....... .....a..... ........ 112 | Reply cc0903 ..0.....MK2.1................. ......... ......... 113 | Reply e501fe ..7711844-06..........GO 114 | Reply b20109 ...4.....CH.....4c.......4.....Zone1.................4d..........T.D 115 | Reply f301fe 0#.....H:=. 116 | Request fa0001 TG@x. 117 | Reply f301fe 0#.....H:-L 118 | Reply b20109 ...0.....EHC-07................ ......... ......... ...........0.... 119 | Reply b78200 ..... .....7733242-06............P=....... .....a..... ........ 120 | Request 080900 .0.... .... .... ....0.... ....P=... .........2.....0.....MK2.1................. ......... ....................T........................ ...0........ .......g........0...;........0.....L........ ...p........ 121 | Reply b20109 ...4.....CH.....4c.......4.....Zone1.................4d..........T.D 122 | Reply f301fe 0#.....H:z. 123 | Request fa0001 C..E.........C.....^........ ............ ..a....`........ ............ ..a....`.......xu.....-...........0#..)........0#.....H:W.... 124 | Reply b20109 ...0.....EHC-07................ ......... ......... ...........0.... 125 | Reply b78200 ..... .....7733242-06............P=....... .....a..... ........ 126 | Request 030103 0.....MK2 127 | Reply e501fe ..7711844-06..........GO 128 | Reply b20109 ...4.....CH.....4c.......4.....Zone1.................4d..........T.D 129 | Reply f301fe 0#.x...H:m. 130 | Reply f301fe 0#.....H:{. 131 | Reply b20109 ...0.....EHC-07................ ......... ......... ...........0.... 132 | Reply b78200 ..... .....7733242-06............P=....... .....a..... ........ 133 | Reply cc0903 ..0.....MK2.1................. ......... ......... 134 | Reply e501fe ..7711844-06..........GO 135 | Reply b20109 ...4.....CH.....4c.......4.....Zone1.................4d..........T.D 136 | -------------------------------------------------------------------------------- /parser.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | from dataclasses import dataclass 3 | from typing import List, BinaryIO 4 | from collections import Counter 5 | import binascii 6 | import warnings 7 | from pprint import pprint 8 | import struct 9 | import re 10 | import sys 11 | import io 12 | import string 13 | import time 14 | 15 | @dataclass(eq=True, frozen=True) 16 | class Message: 17 | is_reply: bool 18 | flags: int 19 | payload_length: int 20 | unknowns: bytes 21 | payload: bytes 22 | 23 | def __str__(self): 24 | payload_hex = ' '.join(f'{b:02X}' for b in self.payload) 25 | return (f"{'Reply ' if self.is_reply else 'Request'} " 26 | f"flags={self.flags:08b} " 27 | f"length={self.payload_length:02} " 28 | f"unknowns={self.unknowns.hex()} " 29 | f"payload={payload_hex}") 30 | 31 | class MessageParser: 32 | def __init__(self, file: BinaryIO): 33 | self.file = file 34 | 35 | def read_bytes(self, count: int) -> bytes: 36 | data = self.file.read(count) 37 | if len(data) < count: 38 | raise EOFError(f"Expected {count} bytes, got {len(data)}") 39 | return data 40 | 41 | def parse_message(self) -> Message: 42 | # Read and verify header 43 | header = self.read_bytes(2) 44 | invalid = False 45 | while header[-2:] != b'\x01\x00': 46 | invalid = True 47 | header += self.read_bytes(1) 48 | if invalid: 49 | warnings.warn(f"Invalid header: {header.hex()}") 50 | 51 | # Parse message type and flags 52 | is_reply = self.read_bytes(1)[0] == 0x01 53 | flags = self.read_bytes(1)[0] 54 | 55 | # Parse payload length 56 | payload_length = self.read_bytes(1)[0] 57 | 58 | # Parse unknown fields 59 | unknowns = self.read_bytes(3) 60 | 61 | # Read payload 62 | payload = self.read_bytes(payload_length) 63 | 64 | return Message( 65 | is_reply=is_reply, 66 | flags=flags, 67 | payload_length=payload_length, 68 | unknowns=unknowns, 69 | payload=payload 70 | ) 71 | 72 | def parse_all(self) -> List[Message]: 73 | messages = {} 74 | registers = {} 75 | while True: 76 | try: 77 | msg = self.parse_message() 78 | if msg.is_reply: 79 | print(msg) 80 | print("unexpected reply") 81 | continue 82 | reply = self.parse_message() 83 | if not reply.is_reply: 84 | print(reply) 85 | print("unexpected request") 86 | continue 87 | # parse known messages 88 | if msg.unknowns == b"\xfa\x00\x01": # register read? 89 | key = msg.payload[0:3] 90 | if key == b"\x30\x23\x00": # date time? 91 | (ts, unk) = struct.unpack(" bytes: 181 | """Convert a string of hex values to bytes, ignoring whitespace.""" 182 | hex_string = ''.join(hex_string.split("\n\r\t\f :")) 183 | return binascii.unhexlify(hex_string) 184 | 185 | def main(): 186 | parser = argparse.ArgumentParser(description='Parse binary message format') 187 | parser.add_argument('input', type=argparse.FileType('rb'), default=sys.stdin, 188 | nargs='?', help='Input file path (or - for stdin)') 189 | parser.add_argument('--hex', action='store_true', 190 | help='Input contains hex strings instead of binary data') 191 | args = parser.parse_args() 192 | 193 | try: 194 | if args.hex: 195 | file = HexFile(args.input) 196 | else: 197 | file = args.input 198 | 199 | parser = MessageParser(file) 200 | parser.parse_all() 201 | finally: 202 | args.input.close() 203 | 204 | 205 | if __name__ == "__main__": 206 | main() 207 | -------------------------------------------------------------------------------- /demodulator.kicad_pro: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "3dviewports": [], 4 | "ipc2581": { 5 | "dist": "", 6 | "distpn": "", 7 | "internal_id": "", 8 | "mfg": "", 9 | "mpn": "" 10 | }, 11 | "layer_presets": [], 12 | "viewports": [] 13 | }, 14 | "boards": [], 15 | "cvpcb": { 16 | "equivalence_files": [] 17 | }, 18 | "erc": { 19 | "erc_exclusions": [], 20 | "meta": { 21 | "version": 0 22 | }, 23 | "pin_map": [ 24 | [ 25 | 0, 26 | 0, 27 | 0, 28 | 0, 29 | 0, 30 | 0, 31 | 1, 32 | 0, 33 | 0, 34 | 0, 35 | 0, 36 | 2 37 | ], 38 | [ 39 | 0, 40 | 2, 41 | 0, 42 | 1, 43 | 0, 44 | 0, 45 | 1, 46 | 0, 47 | 2, 48 | 2, 49 | 2, 50 | 2 51 | ], 52 | [ 53 | 0, 54 | 0, 55 | 0, 56 | 0, 57 | 0, 58 | 0, 59 | 1, 60 | 0, 61 | 1, 62 | 0, 63 | 1, 64 | 2 65 | ], 66 | [ 67 | 0, 68 | 1, 69 | 0, 70 | 0, 71 | 0, 72 | 0, 73 | 1, 74 | 1, 75 | 2, 76 | 1, 77 | 1, 78 | 2 79 | ], 80 | [ 81 | 0, 82 | 0, 83 | 0, 84 | 0, 85 | 0, 86 | 0, 87 | 1, 88 | 0, 89 | 0, 90 | 0, 91 | 0, 92 | 2 93 | ], 94 | [ 95 | 0, 96 | 0, 97 | 0, 98 | 0, 99 | 0, 100 | 0, 101 | 0, 102 | 0, 103 | 0, 104 | 0, 105 | 0, 106 | 2 107 | ], 108 | [ 109 | 1, 110 | 1, 111 | 1, 112 | 1, 113 | 1, 114 | 0, 115 | 1, 116 | 1, 117 | 1, 118 | 1, 119 | 1, 120 | 2 121 | ], 122 | [ 123 | 0, 124 | 0, 125 | 0, 126 | 1, 127 | 0, 128 | 0, 129 | 1, 130 | 0, 131 | 0, 132 | 0, 133 | 0, 134 | 2 135 | ], 136 | [ 137 | 0, 138 | 2, 139 | 1, 140 | 2, 141 | 0, 142 | 0, 143 | 1, 144 | 0, 145 | 2, 146 | 2, 147 | 2, 148 | 2 149 | ], 150 | [ 151 | 0, 152 | 2, 153 | 0, 154 | 1, 155 | 0, 156 | 0, 157 | 1, 158 | 0, 159 | 2, 160 | 0, 161 | 0, 162 | 2 163 | ], 164 | [ 165 | 0, 166 | 2, 167 | 1, 168 | 1, 169 | 0, 170 | 0, 171 | 1, 172 | 0, 173 | 2, 174 | 0, 175 | 0, 176 | 2 177 | ], 178 | [ 179 | 2, 180 | 2, 181 | 2, 182 | 2, 183 | 2, 184 | 2, 185 | 2, 186 | 2, 187 | 2, 188 | 2, 189 | 2, 190 | 2 191 | ] 192 | ], 193 | "rule_severities": { 194 | "bus_definition_conflict": "error", 195 | "bus_entry_needed": "error", 196 | "bus_to_bus_conflict": "error", 197 | "bus_to_net_conflict": "error", 198 | "conflicting_netclasses": "error", 199 | "different_unit_footprint": "error", 200 | "different_unit_net": "error", 201 | "duplicate_reference": "error", 202 | "duplicate_sheet_names": "error", 203 | "endpoint_off_grid": "warning", 204 | "extra_units": "error", 205 | "global_label_dangling": "warning", 206 | "hier_label_mismatch": "error", 207 | "label_dangling": "error", 208 | "lib_symbol_issues": "warning", 209 | "missing_bidi_pin": "warning", 210 | "missing_input_pin": "warning", 211 | "missing_power_pin": "error", 212 | "missing_unit": "warning", 213 | "multiple_net_names": "warning", 214 | "net_not_bus_member": "warning", 215 | "no_connect_connected": "warning", 216 | "no_connect_dangling": "warning", 217 | "pin_not_connected": "error", 218 | "pin_not_driven": "error", 219 | "pin_to_pin": "warning", 220 | "power_pin_not_driven": "error", 221 | "similar_labels": "warning", 222 | "simulation_model_issue": "ignore", 223 | "unannotated": "error", 224 | "unit_value_mismatch": "error", 225 | "unresolved_variable": "error", 226 | "wire_dangling": "error" 227 | } 228 | }, 229 | "libraries": { 230 | "pinned_footprint_libs": [], 231 | "pinned_symbol_libs": [] 232 | }, 233 | "meta": { 234 | "filename": "demodulator.kicad_pro", 235 | "version": 1 236 | }, 237 | "net_settings": { 238 | "classes": [ 239 | { 240 | "bus_width": 12, 241 | "clearance": 0.2, 242 | "diff_pair_gap": 0.25, 243 | "diff_pair_via_gap": 0.25, 244 | "diff_pair_width": 0.2, 245 | "line_style": 0, 246 | "microvia_diameter": 0.3, 247 | "microvia_drill": 0.1, 248 | "name": "Default", 249 | "pcb_color": "rgba(0, 0, 0, 0.000)", 250 | "schematic_color": "rgba(0, 0, 0, 0.000)", 251 | "track_width": 0.2, 252 | "via_diameter": 0.6, 253 | "via_drill": 0.3, 254 | "wire_width": 6 255 | } 256 | ], 257 | "meta": { 258 | "version": 3 259 | }, 260 | "net_colors": null, 261 | "netclass_assignments": null, 262 | "netclass_patterns": [] 263 | }, 264 | "pcbnew": { 265 | "last_paths": { 266 | "gencad": "", 267 | "idf": "", 268 | "netlist": "", 269 | "plot": "", 270 | "pos_files": "", 271 | "specctra_dsn": "", 272 | "step": "", 273 | "svg": "", 274 | "vrml": "" 275 | }, 276 | "page_layout_descr_file": "" 277 | }, 278 | "schematic": { 279 | "annotate_start_num": 0, 280 | "bom_export_filename": "", 281 | "bom_fmt_presets": [], 282 | "bom_fmt_settings": { 283 | "field_delimiter": ",", 284 | "keep_line_breaks": false, 285 | "keep_tabs": false, 286 | "name": "CSV", 287 | "ref_delimiter": ",", 288 | "ref_range_delimiter": "", 289 | "string_delimiter": "\"" 290 | }, 291 | "bom_presets": [], 292 | "bom_settings": { 293 | "exclude_dnp": false, 294 | "fields_ordered": [ 295 | { 296 | "group_by": false, 297 | "label": "Reference", 298 | "name": "Reference", 299 | "show": true 300 | }, 301 | { 302 | "group_by": true, 303 | "label": "Value", 304 | "name": "Value", 305 | "show": true 306 | }, 307 | { 308 | "group_by": false, 309 | "label": "Datasheet", 310 | "name": "Datasheet", 311 | "show": true 312 | }, 313 | { 314 | "group_by": false, 315 | "label": "Footprint", 316 | "name": "Footprint", 317 | "show": true 318 | }, 319 | { 320 | "group_by": false, 321 | "label": "Qty", 322 | "name": "${QUANTITY}", 323 | "show": true 324 | }, 325 | { 326 | "group_by": true, 327 | "label": "DNP", 328 | "name": "${DNP}", 329 | "show": true 330 | } 331 | ], 332 | "filter_string": "", 333 | "group_symbols": true, 334 | "name": "Grouped By Value", 335 | "sort_asc": true, 336 | "sort_field": "Reference" 337 | }, 338 | "connection_grid_size": 50.0, 339 | "drawing": { 340 | "dashed_lines_dash_length_ratio": 12.0, 341 | "dashed_lines_gap_length_ratio": 3.0, 342 | "default_line_thickness": 6.0, 343 | "default_text_size": 50.0, 344 | "field_names": [], 345 | "intersheets_ref_own_page": false, 346 | "intersheets_ref_prefix": "", 347 | "intersheets_ref_short": false, 348 | "intersheets_ref_show": false, 349 | "intersheets_ref_suffix": "", 350 | "junction_size_choice": 3, 351 | "label_size_ratio": 0.375, 352 | "operating_point_overlay_i_precision": 3, 353 | "operating_point_overlay_i_range": "~A", 354 | "operating_point_overlay_v_precision": 3, 355 | "operating_point_overlay_v_range": "~V", 356 | "overbar_offset_ratio": 1.23, 357 | "pin_symbol_size": 25.0, 358 | "text_offset_ratio": 0.15 359 | }, 360 | "legacy_lib_dir": "", 361 | "legacy_lib_list": [], 362 | "meta": { 363 | "version": 1 364 | }, 365 | "net_format_name": "", 366 | "page_layout_descr_file": "", 367 | "plot_directory": "", 368 | "spice_current_sheet_as_root": false, 369 | "spice_external_command": "spice \"%I\"", 370 | "spice_model_current_sheet_as_root": true, 371 | "spice_save_all_currents": false, 372 | "spice_save_all_dissipations": false, 373 | "spice_save_all_voltages": false, 374 | "subpart_first_id": 65, 375 | "subpart_id_separator": 0 376 | }, 377 | "sheets": [ 378 | [ 379 | "7f8d78ce-d6cf-4202-98d4-0936606c6559", 380 | "Root" 381 | ] 382 | ], 383 | "text_variables": {} 384 | } 385 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # R-Bus 2 | 3 | Virtually every modern heater and thermostat will speak OpenTherm, but Remeha in their infinite wisdom created their own protocol called R-Bus. This protocol is to the best of my knowledge completely undocumented, so this is my attempt at doing that. 4 | 5 | ## Current status 6 | 7 | ### Aug 5, 2025 8 | 9 | While I have been busy releasing the [Sentinel Core](https://sanctuary-systems.com/sentinel-core/) raspi GPU board, @robertklep has extended the parser, which I've uploadeded as [parser2.py](parser2.py). 10 | 11 | Once Sentinel Core boards are shipping I hope to develop a complete thermostat. 12 | 13 | ### Dec 23, 2024 14 | 15 | Ladies and gentelmen, we got him. 16 | 17 | I updated the parser so I could live-stream data from the monitor board using 18 | 19 | ```bash 20 | esphome logs --device rbus-monitor.local monitor.yaml | grep --line-buffered -oE "[0-9A-F]{2}(:[0-9A-F]{2})*$" | python parser.py --hex | tee unseen.txt 21 | ``` 22 | 23 | Then I updated the parser to keep track of seen messages and only print requests or replies with new data. 24 | That cut a lot of noise, and let me see what's actually changing. 25 | 26 | The most common message was the one Fried Microcrisps identified as a timestamp. 27 | After a bit of messing around I was able to parse the timestamp and further cut the noise. 28 | 29 | Then I was able to identify relevant messagest related to changing the operating mode and temperature. 30 | And then I found a similar message that appears to be the current temperature! 31 | 32 | So now we can parse 33 | - the time (yay...) 34 | - the active heater mode (scheduled, manual, off) 35 | - the active hot water mode (scheduled, comfort, eco) 36 | - the set temperature in tenths of degrees 37 | - the current room temperature in hundres of degrees 38 | 39 | That's all the basic info you'd want to monitor! 40 | 41 | I've now moved on to further inspecting the cluster of FA register reads. 42 | I'm fairly convinced all of them end with a 2 byte CRC of some sort, exact algorithm TBD. 43 | It appears that the reply "unknown" bytes contain the length of the register and how many values? 44 | 45 | I've written similar code to only print registers that have changed. 46 | I've identified two registers that contain the hot water temperature setting in hundreths of degrees. 47 | There seem to be a few registers that could plausably be water tempertures, but can't see those in the app to verify. 48 | 49 | What I'd really like to find is the data for power usage. 50 | 51 | These are some interesting registers: 52 | ``` 53 | 542e01 (662,) (661,) # changes gradually 54 | 431f00 (4514,) (4484,) # changes gradually 55 | 540801 (0,) (3640,) # becomes zero if heating is turned off 56 | 500100 (1,) (0,) # hot water / heating? 57 | ``` 58 | 59 | ### Dec 20, 2024 60 | 61 | The monitor PCB arrived and works! 62 | So now I have a permanent way to access logs from R-Bus. I just don't have somewhere to log to yet. 63 | 64 | I found a RE discord: 65 | 66 | > Fried Microcrisps 67 | ``` 68 | fa0001542e01 11ad 1a033701 69 | ``` 70 | > These to me look like 71 | > 1 byte integer part <.> 3byte decimal part 72 | 73 | ``` 74 | fa0001302300 9e29 2c658403483aff71 75 | ``` 76 | 77 | > This I highlighted I think is most likely milliseconds 78 | > Your time shown in screenshot is around 4.24pm or 1624H, for brevity it shall be 16.5 hours 79 | > This is equal to 59400000 milliseconds, which in hex is 038A5F40 (be) 80 | > Close enough 81 | ### Nov 27, 2024 82 | 83 | A few realizations 84 | 85 | The room temperature and water setpoint will be in a request (thermostat) 86 | Outside temperature and water temperatures will be in replies (heat pump) 87 | 88 | One request with a uint64 stands out to me: 89 | ``` 90 | Request flags=00000000 length=11 unknown=[F4 04 01] payload=34 23 01 00 00 00 00 00 00 4C 66 91 | ``` 92 | 93 | That's 19558 in decimal, possibly the room temperature in millidegrees? 94 | 95 | In the ascii data we saw `Zone1`, and it made me realise that there can be multiple zones. 96 | But also that the boiler is daisy chained behind the heat pump. 97 | Could it be that some of those unknown triplets indicate the device and zone? 98 | 99 | The `Zone1` messages appears to have a pretty regular structure, but it doesn't hold up with other messages 100 | ``` 101 | 05 # number of fields 102 | ?? ?? typ key? len data 103 | 01 01 [34] [10 01 00 00] [05] [43 48 00 00 00] 104 | 01 01 [34] [63 01 00 00] [01] [00] 105 | 01 01 [34] [0F 01 00 00] [14] [5A 6F 6E 65 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00] 106 | 01 01 [34] [64 01 00 00] [04] [BF A9 00 00] 107 | typ u16? 108 | 01 01 [5C] [18 44] 109 | ``` 110 | 111 | `EHC-07`: 112 | ``` 113 | 09 # not a length 114 | tp key ln dat 115 | 01 01 30 0F 00 00 00 14 45 48 43 2D 30 37 00 00 00 00 00 00 00 00 00 00 00 00 00 00 116 | 01 01 20 01 04 00 00 02 07 01 117 | 01 01 20 01 03 00 00 02 03 03 118 | ?? 119 | 02 01 20 01 10 00 00 04 11 00 09 06 120 | 01 01 30 18 00 00 E6 ?? 121 | ``` 122 | `7733242-06`: 123 | ``` 124 | 02 0B 01 ??? 125 | # tp key ln data 126 | 01 01 20 01 0B 00 00 14 37 37 33 33 32 34 32 2D 30 36 00 00 00 00 00 00 00 00 00 00 127 | 01 01 50 3D 01 00 00 01 05 128 | 01 01 20 01 0A 00 00 04 61 01 0B 2E 129 | 01 01 20 01 02 00 00 02 07 02 130 | 13 ??? 131 | ``` 132 | `MK2.1`: 133 | ``` 134 | no header 135 | ?? tp key ln data 136 | 01 03 30 0F 00 00 00 14 4D 4B 32 2E 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 137 | 01 03 20 01 04 00 00 02 06 01 138 | 01 03 20 01 03 00 00 02 01 02 139 | AD 09 ??? 140 | ``` 141 | `7711844-06`: 142 | ``` 143 | ln data 144 | 20 01 0B 37 37 31 31 38 34 34 2D 30 36 00 145 | ?? ?? ?? uint64? "GO"? 146 | 00 00 00 00 00 00 00 00 00 47 4F 147 | ``` 148 | 149 | ### Nov 25, 2024 150 | 151 | I am trying to find the temperature in the data somewhere. 152 | I've tried to parse every right-alligned number type that fits in a payload, and the most promising candidates 153 | seem to be the numbers in the 20k range I saw last time, but they don't exactly match the temperature. 154 | 155 | Could they be the water temperature? 156 | You might expect hot water to be around 50°C and the return temperature of the water to be slightly above ambient. 157 | Sadly I can't see those temperatures in the app to verify. 158 | 159 | Working on the assumption that in cases where the first 3 bytes of the request and reply payload match they indicate some register, 160 | I wrote a script that groups messages by type and register to see how they change over time. 161 | Many of them are constant and uninteresting, and som vary seemingly at random. 162 | But some vary at a few distinct points in time, possibly in response to me messing with the settings. 163 | 164 | I've collected these messages in [registers.txt](registers.txt). 165 | For now they don't make much sense yet but it narrows down the search space. 166 | It also clearly shows that there are some bit errors that could explain some weirdness. 167 | 168 | I've also had the idea to look for ascii data in the payloads. 169 | That wont get us the temperature, but it might give some other insights. 170 | I've collected these messages in [ascii.txt](ascii.txt). 171 | You can see fun stuff like `Zone1` for the heating zone, `EHC-07` the model of the heat pump, `7733242-06` and `7711844-06` could be serial numbers, and `MK2.1` could be a hardware revision, there are also heating modes like `Home` and `Sleep`. Other than that I'm not sure what we can learn here. 172 | 173 | One thing it does seem to confirm is that the replies are coming from `EHC-07`, the heat pump, 174 | which suggests the requests are from the thermostat. 175 | 176 | This also suggests that we should look for the thermostat set points in the requests. 177 | 178 | ### Nov 22, 2024 179 | 180 | I have started poking around with the message type. 181 | I'm operating under the assumption that the first unknown byte is some kind of message type. 182 | A particular interaction caught my eye where a `FA` request was answered with an `F3` reply. 183 | In all `FA` requests there is a 5 byte payload that seems to be roughly 184 | 185 | | byte | meaning | 186 | |---|---| 187 | |`20 02 01` | address?| 188 | | `73 F0` | unknown | 189 | 190 | and a `F3` reply of the form 191 | 192 | | byte | meaning | 193 | |---|---| 194 | |`20 02 01` | same address | 195 | | `00 00 00 00 00 00 6C 4A` | uint_64? | 196 | 197 | I counted the reply bytes and their length and there seem to be 4 very common `Fx` replies with a common length. Most but not all follow the 3 byte "address" pattern. 198 | 199 | ``` 200 | Counter({'F7 7': 984, 201 | 'F5 9': 802, 202 | 'F8 6': 740, 203 | 'F3 11': 715, 204 | 'E6 24': 41, 205 | 'FE 1': 17, 206 | 'FA 5': 17, 207 | 'E5 25': 14, 208 | 'EF 15': 9, 209 | '00 0': 5, 210 | '2E 1': 3, 211 | '2D 1': 1, 212 | 'F5 25': 1, 213 | '7D 9': 1, 214 | '2E 9': 1, 215 | '01 100': 1, 216 | 'F9 5': 1, 217 | 'F3 43': 1, 218 | '00 1': 1, 219 | '0A 1': 1, 220 | 'A4 187': 1}) 221 | ``` 222 | 223 | I tried parsing those supposed uint_64 with the following result. I was hoping it'd be something obvious like the temperature in millidegrees but while not miles off, not exactly. (recall it was 20°C at the time) 224 | 225 | ``` 226 | (48, 35, 0, 12151716762370106083) 227 | (32, 2, 1, 16762457204505351945) 228 | (52, 33, 1, 25079) 229 | (32, 2, 1, 16762457204505351945) 230 | (32, 2, 1, 27722) 231 | (48, 35, 0, 13315615791068642237) 232 | (32, 2, 1, 16762457204505351945) 233 | (32, 2, 1, 27722) 234 | (52, 35, 1, 47222) 235 | (52, 34, 1, 29879) 236 | (52, 33, 1, 25079) 237 | (32, 2, 1, 16762457204505351945) 238 | (32, 2, 1, 27722) 239 | (48, 35, 0, 10876635117870837854) 240 | (32, 2, 1, 27722) 241 | (52, 35, 1, 47222) 242 | (52, 34, 1, 29879) 243 | (52, 33, 1, 25079) 244 | (48, 35, 0, 3173792004718625437) 245 | (32, 2, 1, 16762457204505351945) 246 | (32, 2, 1, 27722) 247 | ``` 248 | 249 | One thing that is slightly concerning is that there are some parse errors after really long messages. Not sure if just a glitch in the serial data, or something funky like replacing certain bytes. I remember Pokemon has a whole thing where they replace 0xFE with something else and then send a whole mask array, because 0xFE is their handshake byte. 250 | 251 | ### Nov 8, 2024 252 | 253 | I have started building a parser that breaks a stream of bytes from the logger into messages. 254 | Turns out I was decoding the bit order wrong, and now some things are more obvious. 255 | The format seems to be 256 | 257 | 258 | | byte | meaning | 259 | |---|---| 260 | |`01 00`| header | 261 | | `01` | request/reply | 262 | | `00` | some bit flags? | 263 | | `07` | payload length | 264 | | `F7 01 FE` | unknown | 265 | | `10 03 01 FF FF 85 9C` | payload | 266 | 267 | ### Nov 6, 2024 268 | 269 | I have built a data logger with a comparator and an Arduino, and collected a good long chunk of messages in [log.txt](log.txt), 270 | while simultaneously collecting screenshots of the official app in [screenshots](screenshots) and adjusting the temperature between 20°C and 22°C. 271 | 272 | The schematic of the datalogger is in [demodulator.pdf](demodulator.pdf), and the Arduino sketch is in [echo.ino](echo/echo.ino). 273 | 274 | Analysis of the new data tbd. 275 | 276 | ### Oct 14, 2024 277 | 278 | I have collected an oscilloscope capture of the wires between my [Remeha Elga Ace](https://www.remeha.nl/product/elga-ace) heat pump and [Remeha eTwist](https://www.remeha.nl/product/etwist) thermostat. This can be found as a compressed CSV file in `RigolDS1.tar.xz`. 279 | 280 | It appears to be a simple on-off keying scheme with a 500kHz carrier and a 10kHz bit rate. 281 | 282 | To decode the capture, I first demodulate it with `demodulate.py`, and then import `demodulated_output.csv` in [urh](https://github.com/jopohl/urh). Automated detection worked correctly, but I did set the pause threshold and message length divisor to 10. The analysis tab proved unhelpful so I just exported the data to `protocol.proto.xml`. 283 | 284 | My hunch is that it's regular old 8N1 UART data, but possibly inverted. In `decode_bytes.py` I read the exported XML from urh, verify start and stop bits, and extract the data bits. The output is stored in `messages.txt`, a sample is provided below: 285 | 286 | ``` 287 | 80 00 00 00 A0 5F 00 80 2C C4 80 F9 95 288 | 80 00 80 00 D0 CF 80 7F 2C C4 80 00 00 00 00 00 00 1D 6E 289 | 80 00 00 00 A0 5F 00 80 2C 44 80 F0 15 290 | 80 00 80 00 D0 CF 80 7F 2C 44 80 00 00 00 00 00 00 2E ED 291 | ``` 292 | 293 | If you look at the raw capture you can see two slightly different magnitudes, so I think it is reasonable to assume this are the two devices in a request/response interaction. It seems like the first bytes are just some kind of addressing or synchronization, with the third byte being `00` in the request and `80` in the response. Possibly the fifth byte could be some message ID. 294 | 295 | In some of the messages the last 8 bytes look like it could be an uint64 (`00 00 00 00 00 00 2E ED`), hopefully representing some useful value. The request has two bytes in that place. (`F9 95`) The three bytes before that match in the request and reply, and the byte before that is off by one. (`80 2C 44 80` -> `7F 2C 44 80`) Maybe there is some register ID or message sequence number in there? 296 | -------------------------------------------------------------------------------- /parser2.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | from textwrap import indent 3 | from dataclasses import dataclass 4 | from typing import List, BinaryIO, Any 5 | from datetime import datetime, UTC 6 | import binascii 7 | import struct 8 | import sys 9 | import io 10 | import string 11 | import time 12 | import json 13 | 14 | def is_printable(i): 15 | return i >= 0x20 and i < 0x7f 16 | 17 | def to_ascii(data): 18 | return ''.join([ chr(c) if is_printable(int(c)) else '.' for c in data ]) 19 | 20 | def warn(*a): 21 | print('[WARN]', *a, file = sys.stderr) 22 | 23 | def parse_(fmt, id, data): 24 | size = struct.calcsize(fmt) 25 | trailing = len(data) % size 26 | if trailing: 27 | warn(f'{trailing} trailing bytes while parsing {id}') 28 | data = data[:len(data) - trailing] 29 | return [ r[0] for r in struct.iter_unpack(fmt, data) ] 30 | 31 | parse_U8 = lambda v, *a: parse_(' int: 64 | crc = 0xFFFF 65 | for n in range(len(data)): 66 | crc ^= data[n] 67 | for i in range(8): 68 | if crc & 1: 69 | crc >>= 1 70 | crc ^= 0xA001 71 | else: 72 | crc >>= 1 73 | return crc 74 | 75 | OBJECTS = json.load(open('object-dictionary.json')) 76 | FORMATS = { 77 | 'U8': parse_U8, 78 | 'U16': parse_U16, 79 | 'U32': parse_U32, 80 | 'I8': parse_I8, 81 | 'I16': parse_I16, 82 | 'I32': parse_I32, 83 | 'TimeOfDay': parse_TimeOfDay, 84 | 'Enum': parse_Enum, 85 | 'VisibleString': parse_VisibleString, 86 | } 87 | 88 | class DataObject: 89 | obj: dict 90 | msg: Any 91 | index: int 92 | subindex: int 93 | type: str 94 | description: str 95 | value: Any = None # can be of multiple types 96 | unit: str = None 97 | gain: float = 1.0 98 | is_array: bool = False 99 | 100 | def __str__(self): 101 | r = ( 102 | f'Index : {self.index} / {int(self.index, 16)}\n' 103 | f'Subindex : {self.subindex}\n' 104 | f'Type : {self.type}\n' 105 | f'Name : {self.name}\n' 106 | f'Description: {self.description}' 107 | ) 108 | if self.msg.is_reply: 109 | r += f'\nValue : {self.value}{ " " + self.unit if self.unit else ''}' 110 | return r 111 | 112 | @staticmethod 113 | def from_message(msg): 114 | if msg.index not in OBJECTS: 115 | warn(f'unknown object (index {msg.index})') 116 | return None 117 | 118 | obj = OBJECTS[msg.index] 119 | dataobj = DataObject() 120 | dataobj.obj = obj 121 | dataobj.msg = msg 122 | dataobj.index = msg.index 123 | dataobj.subindex = msg.subindex 124 | dataobj.type = obj['type'] 125 | dataobj.value = msg.data 126 | dataobj.name = obj['name'] 127 | dataobj.description = obj['desc'] 128 | 129 | if msg.is_reply: 130 | if dataobj.type in FORMATS: 131 | try: 132 | dataobj.value = FORMATS[dataobj.type](dataobj.value, msg.index) 133 | if 'gain' in obj: 134 | dataobj.gain = obj['gain'] 135 | if dataobj.gain != 1.0: 136 | dataobj.value = [ v * dataobj.gain for v in dataobj.value ] 137 | if obj['is_array']: 138 | # validate array size 139 | max_allowed = obj.get('max_array_size', 1) 140 | if len(dataobj.value) > max_allowed: 141 | warn(f'array size larger than allowed (size={len(value)}, max allowed={max_allowed})') 142 | elif dataobj.type != 'TimeOfDay': 143 | dataobj.value = dataobj.value[0] 144 | except Exception as e: 145 | warn('formatting of data object failed', e) 146 | if 'unit' in obj: 147 | dataobj.unit = obj['unit'] 148 | 149 | return dataobj 150 | 151 | @dataclass(eq = True, frozen = False) 152 | class QueryMessage: 153 | frame: bytes 154 | is_reply: bool 155 | flags: int 156 | payload_size: int 157 | unknowns: bytes 158 | index: str 159 | subindex: bytes 160 | data: bytes 161 | checksum: bytes 162 | crc: bytes 163 | payload: bytes 164 | object # instance of DataObject 165 | 166 | def __str__(self): 167 | return ( 168 | f'Frame : {self.frame.hex()}\n' 169 | f'Class : QUERY\n' 170 | f'Type : { "Reply" if self.is_reply else "Request" }\n' 171 | f'Flags : 0b{self.flags:08b} / 0x{self.flags:02X}\n' 172 | f'Payload size: {self.payload_size} byte{ "" if self.payload_size == 1 else ""}\n' 173 | f'Unknowns : {self.unknowns.hex()}\n' 174 | f'Payload :\n' 175 | f' Raw : {self.payload.hex()}\n' 176 | f' Index : {self.index}\n' 177 | f' Subindex : {self.subindex}\n' 178 | f' Data : {self.data.hex()} / "{ to_ascii(self.data) }"\n' 179 | f' Checksum : {self.checksum.hex()} ({ "invalid, should be " + self.crc.hex() if not self.checksum_valid() else "valid"})\n' 180 | f' DataObject: { ("\n" + indent(str(self.object), " " * 8)) if self.object else "UNKNOWN" }\n' 181 | ) 182 | 183 | def checksum_valid(self) -> bool: 184 | return self.checksum == self.crc 185 | 186 | @staticmethod 187 | def get_instance(frame, msg_type, flags, payload_size, unknowns, payload): 188 | try: 189 | msg = QueryMessage( 190 | frame = frame, 191 | is_reply = msg_type[0] == 0x01, 192 | flags = flags, 193 | payload_size = payload_size, 194 | unknowns = unknowns, 195 | index = payload[0:2].hex().upper(), 196 | subindex = payload[2], 197 | data = payload[3:-2], 198 | checksum = payload[-2:], 199 | crc = crc16modbus(frame[1:-2]).to_bytes(2), 200 | payload = payload 201 | ) 202 | msg.object = DataObject.from_message(msg) 203 | return msg 204 | except Exception as e: 205 | print(f'\n[INVALID FRAME] {frame.hex()} ({e})', file = sys.stderr) 206 | return None 207 | 208 | @dataclass(eq = True, frozen = True) 209 | class UnknownMessageType1: 210 | frame: bytes 211 | is_reply: bool 212 | flags: int 213 | payload_size: int 214 | unknowns: bytes 215 | payload: bytes 216 | 217 | def __str__(self): 218 | return ( 219 | f'Frame : {self.frame.hex()}\n' 220 | f'Class : UNKNOWN Type 1\n' 221 | f'Type : { "Reply" if self.is_reply else "Request" }\n' 222 | f'Flags : 0b{self.flags:08b} / 0x{self.flags:02X}\n' 223 | f'Payload size: {self.payload_size} byte{ "" if self.payload_size == 1 else ""}\n' 224 | f'Unknowns : {self.unknowns.hex()}\n' 225 | f'Payload : {self.payload.hex()}\n' 226 | ) 227 | 228 | @staticmethod 229 | def get_instance(frame, msg_type, flags, payload_size, unknowns, payload): 230 | try: 231 | return UnknownMessageType1( 232 | frame = frame, 233 | is_reply = msg_type[0] == 0x01, 234 | flags = flags, 235 | payload_size = payload_size , 236 | unknowns = unknowns, 237 | payload = payload 238 | ) 239 | except Exception as e: 240 | print(f'\n[INVALID FRAME] {frame.hex()} ({e})', file = sys.stderr) 241 | return None 242 | 243 | @dataclass(eq = True, frozen = True) 244 | class UnknownMessage: 245 | frame: bytes 246 | 247 | def __str__(self): 248 | return ( 249 | f'Frame : {self.frame.hex()}\n' 250 | f'Class : UNKNOWN\n' 251 | ) 252 | 253 | @staticmethod 254 | def get_instance(frame): 255 | return UnknownMessage(frame = frame) 256 | 257 | class MessageParser: 258 | def __init__(self, file: BinaryIO): 259 | self.file = file 260 | 261 | def read_bytes(self, count: int) -> bytes: 262 | data = self.file.read(count) 263 | if len(data) < count: 264 | raise EOFError(f"Expected {count} bytes, got {len(data)}") 265 | return data 266 | 267 | def next_message(self): 268 | data = bytes() 269 | while True: 270 | data += self.read_bytes(1) 271 | if data[-2:] == b'\x01\x00': 272 | # extract frame 273 | header = data[-2:] 274 | msg_type = self.read_bytes(1) 275 | flags = self.read_bytes(1) 276 | payload_size = self.read_bytes(1) 277 | 278 | # Three bytes with unknown function. 279 | # 280 | # The last byte might be a unit id (at least for some requests) 281 | # as they seem to correspond to similar CANopen messages on the 282 | # service port. 283 | 284 | unknowns = self.read_bytes(3) 285 | payload = self.read_bytes(payload_size[0]) 286 | 287 | # raw frame for display purposes 288 | frame = header + msg_type + flags + payload_size + unknowns + payload 289 | 290 | # pick message class 291 | message = None 292 | match flags: 293 | case b'\x00': 294 | if payload_size[0] < 5: 295 | warn(f'payload size < 5 frame={frame.hex()}') 296 | else: 297 | message = QueryMessage.get_instance( 298 | frame, 299 | msg_type, 300 | flags[0], 301 | payload_size[0], 302 | unknowns, 303 | payload 304 | ) 305 | case b'\xd0': 306 | message = UnknownMessageType1.get_instance( 307 | frame, 308 | msg_type, 309 | flags[0], 310 | payload_size[0], 311 | unknowns, 312 | payload 313 | ) 314 | case _: 315 | message = UnknownMessage(frame) 316 | 317 | # create message from frame and emit it 318 | if message: 319 | yield message 320 | 321 | # spurious data 322 | data = data[:-2] 323 | if len(data): 324 | print(f'[SPURIOUS DATA] {data.hex()}', file = sys.stderr) 325 | 326 | # start over 327 | data = bytes() 328 | 329 | def parse_all(self): 330 | for msg in self.next_message(): 331 | print(f'{" Message ":*^30}') 332 | print(msg) 333 | 334 | class HexFile(io.TextIOBase): 335 | def __init__(self, buffer): 336 | super().__init__() 337 | self.buffer = buffer 338 | 339 | def read(self, bytes): 340 | buf = "" 341 | while len(buf) < 2*bytes: 342 | byte = self.buffer.read(1) 343 | if len(byte) == 0: 344 | # EOF 345 | return '' 346 | if byte in string.hexdigits: 347 | buf += byte 348 | 349 | return binascii.unhexlify(buf) 350 | 351 | def hex_string_to_bytes(hex_string: str) -> bytes: 352 | """Convert a string of hex values to bytes, ignoring whitespace.""" 353 | hex_string = ''.join(hex_string.split("\n\r\t\f :")) 354 | return binascii.unhexlify(hex_string) 355 | 356 | def main(): 357 | parser = argparse.ArgumentParser(description='Parse binary message format') 358 | parser.add_argument('input', type=argparse.FileType('rb'), default=sys.stdin, 359 | nargs='?', help='Input file path (or - for stdin)') 360 | parser.add_argument('--hex', action='store_true', 361 | help='Input contains hex strings instead of binary data') 362 | args = parser.parse_args() 363 | 364 | try: 365 | if args.hex: 366 | file = HexFile(args.input) 367 | else: 368 | file = args.input 369 | 370 | parser = MessageParser(file) 371 | parser.parse_all() 372 | finally: 373 | args.input.close() 374 | 375 | if __name__ == "__main__": 376 | main() 377 | -------------------------------------------------------------------------------- /registers.txt: -------------------------------------------------------------------------------- 1 | Found 8180 messages: 2 | fa0001542e01 11ad 1a033701 3 | fa0001542e01 11ad 1c03972c 4 | fa0001542e01 11ad 1c03972c 5 | fa0001542e01 11ad 1c03972c 6 | fa0001542e01 11ad 1e03f72d 7 | fa0001542e01 11ad 1c03972c 8 | fa0001542e01 11ad 1b03a72e 9 | fa0001542e01 11ad 1a03372f 10 | fa0001542e01 11ad 1d03072d 11 | fa0001542e01 11ad 1803572e 12 | fa0001542e01 11ad 1803572e 13 | fa0001542e01 11ad 1903c72f 14 | fa0001542e01 11ad 1a03372f 15 | fa0001542e01 11ad 1b03a72e 16 | fa0001542e01 11ad 1903c72f 17 | fa0001542e01 11ad 1e03f72d 18 | fa0001542e01 11ad 1803572e 19 | fa0001542e01 11ad 1a03372f 20 | fa0001542e01 11ad 1a03372f 21 | fa0001542e01 11ad 1903c72f 22 | fa0001542e01 11ad 1a03372f 23 | fa0001542e01 11ad 1b03a72e 24 | fa0001542e01 11ad 1803572e 25 | fa0001542e01 11ad 1903c72f 26 | fa0001542e01 11ad 1803572e 27 | fa0001542e01 11ad 1a03372f 28 | fa0001542e01 11ad 1d03072d 29 | fa0001542e01 11ad 1903c72f 30 | fa0001542e01 11ad 1803572e 31 | fa0001542e01 11ad 1803572e 32 | fa0001542e01 11ad 1b03a72e 33 | fa0001542e01 11ad 1903c72f 34 | fa0001542e01 11ad 1b03a72e 35 | fa0001542e01 11ad 1b03a72e 36 | fa0001542e01 11ad 1903c72f 37 | fa0001542e01 11ad 1903c72f 38 | fa0001542e01 11ad 1b03a72e 39 | fa0001542e01 11ad 1b03a72e 40 | fa0001542e01 11ad 1a03372f 41 | fa0001542e01 11ad 1903c72f 42 | fa0001542e01 11ad 1903c72f 43 | fa0001542e01 11ad 1d03072d 44 | fa0001542e01 11ad 1803572e 45 | fa0001542e01 13ad 1c03972c 46 | fa0001542e01 11ad 1a03372f 47 | fa0001542e01 11ad 1903c72f 48 | fa0001542e01 11ad 1903c72f 49 | fa0001542e01 11ad 1a03372f 50 | fa0001542e01 11ad 1a03372f 51 | fa0001542e01 11ad 1c03972c 52 | fa0001542e01 11ad 1903c72f 53 | fa0001542e01 11ad 1c03972c 54 | fa0001542e01 11ad 1b03a72e 55 | fa0001542e01 11ad 1903c72f 56 | fa0001542e01 11ad 1c03972c 57 | fa0001542e01 11ad 1b03a72e 58 | fa0001542e01 11ad 1b03a72e 59 | fa0001542e01 11ad 1903c72f 60 | fa0001542e01 11ad 1803572e 61 | fa0001542e01 11ad 1b03a72e 62 | fa0001542e01 11ad 1c03972c 63 | fa0001542e01 11ad 1c03972c 64 | fa0001542e01 11ad 1903c72f 65 | fa0001542e01 11ad 1903c72f 66 | fa0001542e01 11ad 1803572e 67 | fa0001542e01 11ad 1a03372f 68 | fa0001542e01 11ad 1803572e 69 | fa0001542e01 11ad 1603372a 70 | fa0001542e01 11ad 1903c72f 71 | fa0001542e01 11ad 1a03372f 72 | fa0001542e01 11ad 1903c72f 73 | fa0001542e01 11ad 1703a72b 74 | fa0001542e01 11ad 1603372a 75 | fa0001542e01 11ad 1603372a 76 | fa0001542e01 11ad 1603372a 77 | fa0001542e01 11ad 1a03372f 78 | fa0001542e01 11ad 1803572e 79 | fa0001542e01 11ad 1603372a 80 | fa0001542e01 11ad 1603372a 81 | fa0001542e01 11ad 1603372a 82 | fa0001542e01 11ad 1503c72a 83 | fa0001542e01 11ad 1903c72f 84 | fa0001542e01 11ad 1a03372f 85 | fa0001542e01 11ad 1703a72b 86 | fa0001542e01 11ad 1903c72f 87 | fa0001542e01 11ad 1603372a 88 | fa0001542e01 11ad 1603372a 89 | 90 | fa0001541901 21bb c800e23d 91 | fa0001541901 21bb c800e23d 92 | fa0001541901 21bb c800e23d 93 | fa0001541901 21bb c800e23d 94 | fa0001541901 21bb c800e23d 95 | fa0001541901 21bb c800e23d 96 | fa0001541901 21bb c800e23d 97 | fa0001541901 21bb c800e23d 98 | fa0001541901 21bb d2008236 99 | fa0001541901 21bb d2008236 100 | fa0001541901 21bb d2008236 101 | fa0001541901 21bb dc00e232 102 | fa0001541901 21bb dc00e232 103 | fa0001541901 21bb dc00e232 104 | fa0001541901 21bb c800e23d 105 | fa0001541901 21bb 3c00227b 106 | fa0001541901 21bb c800e23d 107 | fa0001541901 21bb 3c00227b 108 | fa0001541901 21bb 3c00227b 109 | fa0001541901 21bb 3c00227b 110 | fa0001541901 21bb c800e23d 111 | fa0001541901 21bb c800e23d 112 | fa0001541901 21bb c800e23d 113 | fa0001541901 21bb c800e23d 114 | fa0001541901 21bb c800e23d 115 | fa0001541901 21bb c800e23d 116 | fa0001541901 21bb c800e23d 117 | fa0001541901 21bb c800e23d 118 | fa0001541901 21bb c800e23d 119 | fa0001541901 21bb c800e23d 120 | fa0001541901 21bb c800e23d 121 | fa0001541901 21bb c800e23d 122 | fa0001541901 21bb cd00b23e 123 | fa0001541901 21bb cd00b23e 124 | fa0001541901 21bb cd00b23e 125 | fa0001541901 21bb d2008236 126 | fa0001541901 21bb d2008236 127 | fa0001541901 21bb d2008236 128 | fa0001541901 21bb d2008236 129 | fa0001541901 21bb d2008236 130 | fa0001541901 21bb d2008236 131 | fa0001541901 21bb d2008236 132 | fa0001541901 21bb d2008236 133 | fa0001541901 21bb d2008236 134 | fa0001541901 21bb d2008236 135 | fa0001541901 21bb d2008236 136 | fa0001541901 21bb d2008236 137 | fa0001541901 21bb d2008236 138 | fa0001541901 21bb d2008236 139 | fa0001541901 21bb d2008236 140 | fa0001541901 21bb d2008236 141 | fa0001541901 21bb d2008236 142 | fa0001541901 21bb d2008236 143 | fa0001541901 21bb d2008236 144 | fa0001541901 21bb d2008236 145 | fa0001541901 21bb d2008236 146 | fa0001541901 21bf d2008236 147 | fa0001541901 21bb d2008236 148 | fa0001541901 21bb d2008236 149 | fa0001541901 21bb d2008236 150 | fa0001541901 21bb d2008236 151 | fa0001541901 21bb d2008236 152 | fa0001541901 21bb d2008236 153 | fa0001541901 21bb d2008236 154 | fa0001541901 21bb d2008236 155 | fa0001541901 21bb d2008236 156 | fa0001541901 21bb d2008236 157 | fa0001541901 21bb d2008236 158 | fa0001541901 21bb d2008236 159 | fa0001541901 21bb d2008236 160 | fa0001541901 21bb d2008236 161 | fa0001541901 21bb d2008236 162 | fa0001541901 21bb d2008236 163 | fa0001541901 21bb d2008236 164 | fa0001541901 21bb d2008236 165 | fa0001541901 21bb d2008236 166 | fa0001541901 21bb d2008236 167 | fa0001541901 21bb d2008236 168 | fa0001541901 21bb d2008236 169 | fa0001541901 21bb d2008236 170 | fa0001541901 21bb d2008236 171 | fa0001541901 21bb d2008236 172 | fa0001541901 21bb d2008236 173 | fa0001541901 21bb d2008236 174 | fa0001541901 21bb d2008236 175 | fa0001541901 21bb d2008236 176 | fa0001541901 21bb d2008236 177 | fa0001541901 21bb d2008236 178 | fa0001541901 21bb d2008236 179 | fa0001541901 21bb d2008236 180 | fa0001541901 21bb d2008236 181 | fa0001541901 21bb d2008236 182 | fa0001541901 21bb d2008236 183 | fa0001541901 21bb d2008236 184 | fa0001541901 21bb d2008236 185 | fa0001541901 21bb d2008236 186 | fa0001541901 21bb d2008236 187 | 188 | fa0001540401 71b2 c8008e3b 189 | fa0001540401 71b2 c8008e3b 190 | fa0001540401 71b2 c8008e3b 191 | fa0001540401 71b2 c8008e3b 192 | fa0001540401 71b2 c8008e3b 193 | fa0001540401 71b2 c8008e3b 194 | fa0001540401 71b2 c8008e3b 195 | fa0001540401 71b2 c8008e3b 196 | fa0001540401 71b2 c8008e3b 197 | fa0001540401 71b2 c8008e3b 198 | fa0001540401 71b2 c8008e3b 199 | fa0001540401 71b2 c8008e3b 200 | fa0001540401 71b2 c8008e3b 201 | fa0001540401 71b2 c8008e3b 202 | fa0001540401 71b2 c8008e3b 203 | fa0001540401 71b2 c8008e3b 204 | fa0001540401 71b2 c8008e3b 205 | fa0001540401 71b2 c8008e3b 206 | fa0001540401 71b2 c8008e3b 207 | fa0001540401 71b2 c8008e3b 208 | fa0001540401 71b2 c8008e3b 209 | fa0001540401 71b2 c8008e3b 210 | fa0001540401 71b2 c8008e3b 211 | fa0001540401 71b2 c8008e3b 212 | fa0001540401 71b2 c8008e3b 213 | fa0001540401 71b2 c8008e3b 214 | fa0001540401 71b2 c8008e3b 215 | fa0001540401 71b2 c8008e3b 216 | fa0001540401 71b2 cd00de38 217 | fa0001540401 71b2 cd00de38 218 | fa0001540401 71b2 cd00de38 219 | fa0001540401 71b2 cd00de38 220 | fa0001540401 71b2 cd00de38 221 | fa0001540401 71b2 cd00de38 222 | fa0001540401 71b2 cd00de38 223 | fa0001540401 71b2 cd00de38 224 | fa0001540401 71b2 cd00de38 225 | fa0001540401 71b2 cd00de38 226 | fa0001540401 71b2 cd00de38 227 | fa0001540401 71b2 cd00de38 228 | fa0001540401 71b2 cd00de38 229 | fa0001540401 71b2 cd00de38 230 | fa0001540401 71b2 cd00de38 231 | fa0001540401 71b2 cd00de38 232 | fa0001540401 71b2 cd00de38 233 | fa0001540401 71b2 cd00de38 234 | fa0001540401 71b2 cd00de38 235 | fa0001540401 71b2 cd00de38 236 | fa0001540401 71b2 cd00de38 237 | fa0001540401 71b2 cd00de38 238 | fa0001540401 71b2 cd00de38 239 | fa0001540401 71b2 cd00de38 240 | fa0001540401 71b2 cd00de38 241 | fa0001540401 71b2 cd00de38 242 | fa0001540401 71b2 cd00de38 243 | fa0001540401 71b2 cd00de38 244 | fa0001540401 71b2 cd00de38 245 | fa0001540401 71b2 cd00de38 246 | fa0001540401 71b2 cd00de38 247 | fa0001540401 71b2 cd00de38 248 | fa0001540401 71b2 cd00de38 249 | fa0001540401 71b2 cd00de38 250 | fa0001540401 71b2 cd00de38 251 | fa0001540401 71b2 cd00de38 252 | fa0001540401 71b2 cd00de38 253 | fa0001540401 71b2 cd00de38 254 | fa0001540401 71b2 cd00de38 255 | fa0001540401 71b2 cd00de38 256 | fa0001540401 71b2 cd00de38 257 | fa0001540401 71b2 cd00de38 258 | fa0001540401 71b2 cd00de38 259 | fa0001540401 71b2 cd00de38 260 | fa0001540401 71b2 cd00de38 261 | fa0001540401 71b2 cd00de38 262 | fa0001540401 71b2 cd00de38 263 | fa0001540401 71b2 cd00de38 264 | fa0001540401 71b2 cd00de38 265 | fa0001540401 71b2 cd00de38 266 | fa0001540401 71b2 cd00de38 267 | fa0001540401 71b2 cd00de38 268 | fa0001540401 71b2 cd00de38 269 | fa0001540401 71b2 cd00de38 270 | fa0001540401 71b2 cd00de38 271 | fa0001540401 71b2 cd00de38 272 | fa0001540401 71b2 cd00de38 273 | 274 | fa0001302300 9e29 2c658403483aff71 275 | fa0001302300 9e29 bc668403483aaf28 276 | fa0001302300 9e29 fe8d8403483a9a03 277 | fa0001302300 9e29 dcb48403483a1d99 278 | fa0001302300 9e29 16078503483a918c 279 | fa0001302300 9e29 8c4f8503483a6571 280 | fa0001302300 9e29 04558503483a2f36 281 | fa0001302300 9e29 467c8503483acb64 282 | fa0001302300 9e29 24a38503483a5af9 283 | fa0001302300 9e29 34ca8503483ac3a7 284 | fa0001302300 9e29 daf18503483a4855 285 | fa0001302300 9e29 54188603483a3516 286 | fa0001302300 9e29 ec398603483a4ab1 287 | fa0001302300 9e29 643f8603483ac227 288 | fa0001302300 9e29 a6668603483a2d2b 289 | fa0001302300 9e29 848d8603483ab809 290 | fa0001302300 9e29 94b48603483a2d97 291 | fa0001302300 9e29 d6db8603483a064c 292 | fa0001302300 9e29 b4028703483a6b58 293 | fa0001302300 9e29 4c248703483a1444 294 | fa0001302300 9e29 c4298703483a5d77 295 | fa0001302300 9e29 06518703483ab5c7 296 | fa0001302300 9e29 e4778703483af0d9 297 | fa0001302300 9e29 f49e8703483ab786 298 | fa0001302300 9e29 36c68703483a98b7 299 | fa0001302300 9e29 46ed8703483aae98 300 | fa0001302300 9e29 ac0e8803483aa648 301 | fa0001302300 9e29 24148803483aec0f 302 | fa0001302300 9e29 663b8803483a08d5 303 | fa0001302300 9e29 44628803483a87cf 304 | fa0001302300 9e29 54898803483a00e9 305 | fa0001302300 9e29 96b08803483ae765 306 | fa0001302300 9e29 0cf98803483ad3a5 307 | fa0001302300 9e29 84fe8803483a9b0e 308 | fa0001302300 9e29 c6258903483a5664 309 | fa0001302300 9e29 a44c8903483a1d30 310 | fa0001302300 9e29 b4738903483a8826 311 | fa0001302300 9e29 f69a8903483a7d74 312 | fa0001302300 9e29 d4c18903483a3217 313 | fa0001302300 9e29 6ce38903483a4df4 314 | fa0001302300 9e29 e4e88903483a044f 315 | fa0001302300 9e29 26108a03483a76fe010000d0012e047875010001d0012d058889010000d0012e047875010001d001 316 | fa0001302300 9e29 145e8a03483a6a92 317 | fa0001302300 9e29 56858a03483a5bf9 318 | fa0001302300 9f29 cccd8a03483aaf04 319 | fa0001302300 9e29 44d38a03483a25b2 320 | fa0001302300 9e29 b8fa8a03483adffb 321 | fa0001302300 9e29 64218b03483a6c8d 322 | fa0001302300 9e29 b66f8b03483a10f7 323 | fa0001302300 9e29 94968b03483a866d 324 | fa0001302300 9e29 a4bd8b03483a704c 325 | fa0001302300 9e29 e6e48b03483a5f5f 326 | fa0001302300 9e29 c40b8c03483a7e8d 327 | fa0001302300 9e29 6a338c03483a3535 328 | fa0001302300 9e29 fe5d8c03483a28c0 329 | fa0001302300 9e29 dc848c03483a79db 330 | fa0001302300 9e29 8ca28c03483aeede 331 | fa0001302300 9e29 06b08c03483a8779 332 | fa0001302300 9e29 16d78c03483adf4e 333 | fa0001302300 9e29 f4fd8c03483a9b40 334 | fa0001302300 9e29 68258d03483ae87c 335 | fa0001302300 9e29 464c8d03483aaf26 336 | fa0001302300 9e29 24738d03483ae83a 337 | fa0001302300 9e29 ec8c8d03483ab43e 338 | fa0001302300 9e29 989a8d03483ac37d 339 | fa0001302300 9e29 76c18d03483a400f 340 | fa0001302300 9e29 c80f8e03483aca7d 341 | fa0001302300 9e29 a6368e03483a41e9 342 | fa0001302300 9e29 845d8e03483a0aca 343 | fa0001302300 9e29 4c778e03483a84c3 344 | fa0001302300 9e29 f8848e03483a25dc 345 | fa0001302300 9e29 d6ab8e03483aad0f 346 | fa0001302300 9e29 b4d28e03483a259a 347 | fa0001302300 9e29 5afa8e03483a6ded 348 | fa0001302300 9e29 06218f03483a1e84 349 | fa0001302300 9e29 e4478f03483a949b 350 | fa0001302300 9e29 ac618f03483adb9d 351 | fa0001302300 9e29 266f8f03483a70eb 352 | fa0001302300 9e29 36968f03483af475 353 | fa0001302300 9e29 14bd8f03483a7057 354 | fa0001302300 9e29 56e48f03483a5f44 355 | fa0001302300 9e29 660b9003483aac93 356 | fa0001302300 9e29 44329003483a2b09 357 | fa0001302300 9e29 0c4c9003483aa92e 358 | fa0001302300 9e29 86599003483a003c 359 | fa0001302300 9e29 c8809003483a3d2e 360 | fa0001302300 9e29 74a79003483ac600 361 | fa0001302300 9e29 b6ce9003483a2d4c 362 | fa0001302300 9e29 f8f59003483a06a6 363 | fa0001302300 9e29 6c530100000005fa 364 | fa0001302300 9e29 e6439103483a9e6d 365 | fa0001302300 9e29 f66a9103483ac832 366 | fa0001302300 9e29 d4919103483a9ed1 367 | fa0001302300 9e29 16b99103483a7aa1 368 | fa0001302300 9e29 58e09103483a99b2 369 | fa0001302300 9e29 cc209203483a18ae 370 | fa0001302300 9e29 782e9203483a6ddc 371 | fa0001302300 9e29 88559203483a972c 372 | fa0001302300 9e29 347c9203483aad6b 373 | fa0001302300 9e29 b8ca9203483a7bbd 374 | fa0001302300 9e29 96f19203483af05e 375 | fa0001302300 9e29 2c0b9303483a829d 376 | 377 | fa0001540801 71b7 4c0e1ada 378 | fa0001540801 71b7 4c0e1ada 379 | fa0001540801 71b7 4c0e1ada 380 | fa0001540801 71b7 4c0e1ada 381 | fa0001540801 71b7 00001e6f 382 | fa0001540801 71b7 4c0e1ada 383 | fa0001540801 71b7 4c0e1ada 384 | fa0001540801 71b7 4c0e1ada 385 | fa0001540801 71b7 3412d3f9 386 | fa0001540801 71b7 3412d3f9 387 | fa0001540801 71b7 3412d3f9 388 | fa0001540801 71b7 3412d3f9 389 | fa0001540801 71b7 3412d3f9 390 | fa0001540801 71b7 3412d3f9 391 | fa0001540801 71b7 3412d3f9 392 | fa0001540801 71b7 3412d3f9 393 | fa0001540801 71b7 3412d3f9 394 | fa0001540801 71b7 3412d3f9 395 | fa0001540801 71b7 3412d3f9 396 | fa0001540801 71b7 3412d3f9 397 | fa0001540801 71b7 3412d3f9 398 | fa0001540801 71b7 3412d3f9 399 | fa0001540801 71b7 3412d3f9 400 | fa0001540801 71b7 3412d3f9 401 | fa0001540801 71b7 3412d3f9 402 | fa0001540801 71b7 481213d9 403 | fa0001540801 71b7 481213d9 404 | 405 | f80401543401 e907af68 c657 406 | f80401543401 e907af68 c657 407 | f80401543401 e8073f69 c657 408 | f80401543401 e8073f69 c657 409 | f80401543401 e907af68 c657 410 | f80401543401 ea075f68 c657 411 | f80401543401 ea075f68 c657 412 | f80401543401 ea075f68 c657 413 | f80401543401 e907af68 c657 414 | f80401543401 ea075f68 c657 415 | f80401543401 e907af68 c657 416 | f80401543401 e907af68 c657 417 | f80401543401 e8073f69 c657 418 | f80401543401 e8073f69 c657 419 | f80401543401 e8073f69 c657 420 | f80401543401 e8073f69 c657 421 | f80401543401 e8073f69 c657 422 | f80401543401 e8073f69 c657 423 | f80401543401 e8073f69 c657 424 | f80401543401 e8073f69 c657 425 | f80401543401 e8073f69 c657 426 | f80401543401 e8073f69 c657 427 | f80401543401 e8073f69 c657 428 | 429 | fa0001431f00 45c9 3310555a 430 | fa0001431f00 45c9 d40f6d50 431 | fa0001431f00 51f2 8d10f52b 432 | fa0001431f00 45c9 b110f53a 433 | fa0001431f00 45c9 9e10c526 434 | fa0001431f00 45c9 3611c598 435 | fa0001431f00 45c9 0811a588 436 | fa0001431f00 45c9 7110f56a 437 | fa0001431f00 45c9 ef0f5d43 438 | fa0001431f00 45c9 ed0f3d42 439 | fa0001431f00 45c9 c60fcd5c 440 | fa0001431f00 45c9 b70f9d78 441 | 442 | fa0003503d01 58f0 009d07 443 | fa0003503d01 58e0 009d07 444 | fa0003503d01 58e0 009d07 445 | fa0003503d01 58e0 009d07 446 | fa0003503d01 58e0 009d07 447 | fa0003503d01 58e0 009d07 448 | fa0003503d01 58e0 009d07 449 | fa0003503d01 58e0 009d07 450 | fa0003503d01 58e0 009d07 451 | fa0003503d01 58e0 009d07 452 | fa0003503d01 58e0 009d07 453 | fa0003503d01 58e0 009d07 454 | fa0003503d01 58e0 009d07 455 | fa0003503d01 58e0 009d07 456 | fa0003503d01 58e0 009d07 457 | fa0003503d01 58e0 009d07 458 | fa0003503d01 58e0 009d07 459 | fa0003503d01 58e0 009d07 460 | fa0003503d01 58e0 009d07 461 | fa0003503d01 58e0 009d07 462 | fa0003503d01 58e0 009d07 463 | fa0003503d01 58e0 009d07 464 | fa0003503d01 58e0 009d07 465 | fa0003503d01 58e0 009d07 466 | fa0003503d01 58e4 009d07 467 | fa0003503d01 58e0 009d07 468 | fa0003503d01 58e0 009d07 469 | fa0003503d01 58e0 009d07 470 | fa0003503d01 58e0 009d07 471 | fa0003503d01 58e0 009d07 472 | 473 | -------------------------------------------------------------------------------- /protocol.proto.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 'Non Return To Zero (NRZ)', 5 | 'Non Return To Zero + Invert', 'Invert', 6 | 'Manchester I', 'Edge Trigger', 7 | 'Manchester II', 'Edge Trigger', 'Invert', 8 | 'Differential Manchester', 'Edge Trigger', 'Differential Encoding', 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /demodulator.kicad_sch: -------------------------------------------------------------------------------- 1 | (kicad_sch 2 | (version 20231120) 3 | (generator "eeschema") 4 | (generator_version "8.0") 5 | (uuid "7f8d78ce-d6cf-4202-98d4-0936606c6559") 6 | (paper "A4") 7 | (lib_symbols 8 | (symbol "Connector_Generic:Conn_01x02" 9 | (pin_names 10 | (offset 1.016) hide) 11 | (exclude_from_sim no) 12 | (in_bom yes) 13 | (on_board yes) 14 | (property "Reference" "J" 15 | (at 0 2.54 0) 16 | (effects 17 | (font 18 | (size 1.27 1.27) 19 | ) 20 | ) 21 | ) 22 | (property "Value" "Conn_01x02" 23 | (at 0 -5.08 0) 24 | (effects 25 | (font 26 | (size 1.27 1.27) 27 | ) 28 | ) 29 | ) 30 | (property "Footprint" "" 31 | (at 0 0 0) 32 | (effects 33 | (font 34 | (size 1.27 1.27) 35 | ) 36 | (hide yes) 37 | ) 38 | ) 39 | (property "Datasheet" "~" 40 | (at 0 0 0) 41 | (effects 42 | (font 43 | (size 1.27 1.27) 44 | ) 45 | (hide yes) 46 | ) 47 | ) 48 | (property "Description" "Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)" 49 | (at 0 0 0) 50 | (effects 51 | (font 52 | (size 1.27 1.27) 53 | ) 54 | (hide yes) 55 | ) 56 | ) 57 | (property "ki_keywords" "connector" 58 | (at 0 0 0) 59 | (effects 60 | (font 61 | (size 1.27 1.27) 62 | ) 63 | (hide yes) 64 | ) 65 | ) 66 | (property "ki_fp_filters" "Connector*:*_1x??_*" 67 | (at 0 0 0) 68 | (effects 69 | (font 70 | (size 1.27 1.27) 71 | ) 72 | (hide yes) 73 | ) 74 | ) 75 | (symbol "Conn_01x02_1_1" 76 | (rectangle 77 | (start -1.27 -2.413) 78 | (end 0 -2.667) 79 | (stroke 80 | (width 0.1524) 81 | (type default) 82 | ) 83 | (fill 84 | (type none) 85 | ) 86 | ) 87 | (rectangle 88 | (start -1.27 0.127) 89 | (end 0 -0.127) 90 | (stroke 91 | (width 0.1524) 92 | (type default) 93 | ) 94 | (fill 95 | (type none) 96 | ) 97 | ) 98 | (rectangle 99 | (start -1.27 1.27) 100 | (end 1.27 -3.81) 101 | (stroke 102 | (width 0.254) 103 | (type default) 104 | ) 105 | (fill 106 | (type background) 107 | ) 108 | ) 109 | (pin passive line 110 | (at -5.08 0 0) 111 | (length 3.81) 112 | (name "Pin_1" 113 | (effects 114 | (font 115 | (size 1.27 1.27) 116 | ) 117 | ) 118 | ) 119 | (number "1" 120 | (effects 121 | (font 122 | (size 1.27 1.27) 123 | ) 124 | ) 125 | ) 126 | ) 127 | (pin passive line 128 | (at -5.08 -2.54 0) 129 | (length 3.81) 130 | (name "Pin_2" 131 | (effects 132 | (font 133 | (size 1.27 1.27) 134 | ) 135 | ) 136 | ) 137 | (number "2" 138 | (effects 139 | (font 140 | (size 1.27 1.27) 141 | ) 142 | ) 143 | ) 144 | ) 145 | ) 146 | ) 147 | (symbol "Connector_Generic:Conn_01x12" 148 | (pin_names 149 | (offset 1.016) hide) 150 | (exclude_from_sim no) 151 | (in_bom yes) 152 | (on_board yes) 153 | (property "Reference" "J" 154 | (at 0 15.24 0) 155 | (effects 156 | (font 157 | (size 1.27 1.27) 158 | ) 159 | ) 160 | ) 161 | (property "Value" "Conn_01x12" 162 | (at 0 -17.78 0) 163 | (effects 164 | (font 165 | (size 1.27 1.27) 166 | ) 167 | ) 168 | ) 169 | (property "Footprint" "" 170 | (at 0 0 0) 171 | (effects 172 | (font 173 | (size 1.27 1.27) 174 | ) 175 | (hide yes) 176 | ) 177 | ) 178 | (property "Datasheet" "~" 179 | (at 0 0 0) 180 | (effects 181 | (font 182 | (size 1.27 1.27) 183 | ) 184 | (hide yes) 185 | ) 186 | ) 187 | (property "Description" "Generic connector, single row, 01x12, script generated (kicad-library-utils/schlib/autogen/connector/)" 188 | (at 0 0 0) 189 | (effects 190 | (font 191 | (size 1.27 1.27) 192 | ) 193 | (hide yes) 194 | ) 195 | ) 196 | (property "ki_keywords" "connector" 197 | (at 0 0 0) 198 | (effects 199 | (font 200 | (size 1.27 1.27) 201 | ) 202 | (hide yes) 203 | ) 204 | ) 205 | (property "ki_fp_filters" "Connector*:*_1x??_*" 206 | (at 0 0 0) 207 | (effects 208 | (font 209 | (size 1.27 1.27) 210 | ) 211 | (hide yes) 212 | ) 213 | ) 214 | (symbol "Conn_01x12_1_1" 215 | (rectangle 216 | (start -1.27 -15.113) 217 | (end 0 -15.367) 218 | (stroke 219 | (width 0.1524) 220 | (type default) 221 | ) 222 | (fill 223 | (type none) 224 | ) 225 | ) 226 | (rectangle 227 | (start -1.27 -12.573) 228 | (end 0 -12.827) 229 | (stroke 230 | (width 0.1524) 231 | (type default) 232 | ) 233 | (fill 234 | (type none) 235 | ) 236 | ) 237 | (rectangle 238 | (start -1.27 -10.033) 239 | (end 0 -10.287) 240 | (stroke 241 | (width 0.1524) 242 | (type default) 243 | ) 244 | (fill 245 | (type none) 246 | ) 247 | ) 248 | (rectangle 249 | (start -1.27 -7.493) 250 | (end 0 -7.747) 251 | (stroke 252 | (width 0.1524) 253 | (type default) 254 | ) 255 | (fill 256 | (type none) 257 | ) 258 | ) 259 | (rectangle 260 | (start -1.27 -4.953) 261 | (end 0 -5.207) 262 | (stroke 263 | (width 0.1524) 264 | (type default) 265 | ) 266 | (fill 267 | (type none) 268 | ) 269 | ) 270 | (rectangle 271 | (start -1.27 -2.413) 272 | (end 0 -2.667) 273 | (stroke 274 | (width 0.1524) 275 | (type default) 276 | ) 277 | (fill 278 | (type none) 279 | ) 280 | ) 281 | (rectangle 282 | (start -1.27 0.127) 283 | (end 0 -0.127) 284 | (stroke 285 | (width 0.1524) 286 | (type default) 287 | ) 288 | (fill 289 | (type none) 290 | ) 291 | ) 292 | (rectangle 293 | (start -1.27 2.667) 294 | (end 0 2.413) 295 | (stroke 296 | (width 0.1524) 297 | (type default) 298 | ) 299 | (fill 300 | (type none) 301 | ) 302 | ) 303 | (rectangle 304 | (start -1.27 5.207) 305 | (end 0 4.953) 306 | (stroke 307 | (width 0.1524) 308 | (type default) 309 | ) 310 | (fill 311 | (type none) 312 | ) 313 | ) 314 | (rectangle 315 | (start -1.27 7.747) 316 | (end 0 7.493) 317 | (stroke 318 | (width 0.1524) 319 | (type default) 320 | ) 321 | (fill 322 | (type none) 323 | ) 324 | ) 325 | (rectangle 326 | (start -1.27 10.287) 327 | (end 0 10.033) 328 | (stroke 329 | (width 0.1524) 330 | (type default) 331 | ) 332 | (fill 333 | (type none) 334 | ) 335 | ) 336 | (rectangle 337 | (start -1.27 12.827) 338 | (end 0 12.573) 339 | (stroke 340 | (width 0.1524) 341 | (type default) 342 | ) 343 | (fill 344 | (type none) 345 | ) 346 | ) 347 | (rectangle 348 | (start -1.27 13.97) 349 | (end 1.27 -16.51) 350 | (stroke 351 | (width 0.254) 352 | (type default) 353 | ) 354 | (fill 355 | (type background) 356 | ) 357 | ) 358 | (pin passive line 359 | (at -5.08 12.7 0) 360 | (length 3.81) 361 | (name "Pin_1" 362 | (effects 363 | (font 364 | (size 1.27 1.27) 365 | ) 366 | ) 367 | ) 368 | (number "1" 369 | (effects 370 | (font 371 | (size 1.27 1.27) 372 | ) 373 | ) 374 | ) 375 | ) 376 | (pin passive line 377 | (at -5.08 -10.16 0) 378 | (length 3.81) 379 | (name "Pin_10" 380 | (effects 381 | (font 382 | (size 1.27 1.27) 383 | ) 384 | ) 385 | ) 386 | (number "10" 387 | (effects 388 | (font 389 | (size 1.27 1.27) 390 | ) 391 | ) 392 | ) 393 | ) 394 | (pin passive line 395 | (at -5.08 -12.7 0) 396 | (length 3.81) 397 | (name "Pin_11" 398 | (effects 399 | (font 400 | (size 1.27 1.27) 401 | ) 402 | ) 403 | ) 404 | (number "11" 405 | (effects 406 | (font 407 | (size 1.27 1.27) 408 | ) 409 | ) 410 | ) 411 | ) 412 | (pin passive line 413 | (at -5.08 -15.24 0) 414 | (length 3.81) 415 | (name "Pin_12" 416 | (effects 417 | (font 418 | (size 1.27 1.27) 419 | ) 420 | ) 421 | ) 422 | (number "12" 423 | (effects 424 | (font 425 | (size 1.27 1.27) 426 | ) 427 | ) 428 | ) 429 | ) 430 | (pin passive line 431 | (at -5.08 10.16 0) 432 | (length 3.81) 433 | (name "Pin_2" 434 | (effects 435 | (font 436 | (size 1.27 1.27) 437 | ) 438 | ) 439 | ) 440 | (number "2" 441 | (effects 442 | (font 443 | (size 1.27 1.27) 444 | ) 445 | ) 446 | ) 447 | ) 448 | (pin passive line 449 | (at -5.08 7.62 0) 450 | (length 3.81) 451 | (name "Pin_3" 452 | (effects 453 | (font 454 | (size 1.27 1.27) 455 | ) 456 | ) 457 | ) 458 | (number "3" 459 | (effects 460 | (font 461 | (size 1.27 1.27) 462 | ) 463 | ) 464 | ) 465 | ) 466 | (pin passive line 467 | (at -5.08 5.08 0) 468 | (length 3.81) 469 | (name "Pin_4" 470 | (effects 471 | (font 472 | (size 1.27 1.27) 473 | ) 474 | ) 475 | ) 476 | (number "4" 477 | (effects 478 | (font 479 | (size 1.27 1.27) 480 | ) 481 | ) 482 | ) 483 | ) 484 | (pin passive line 485 | (at -5.08 2.54 0) 486 | (length 3.81) 487 | (name "Pin_5" 488 | (effects 489 | (font 490 | (size 1.27 1.27) 491 | ) 492 | ) 493 | ) 494 | (number "5" 495 | (effects 496 | (font 497 | (size 1.27 1.27) 498 | ) 499 | ) 500 | ) 501 | ) 502 | (pin passive line 503 | (at -5.08 0 0) 504 | (length 3.81) 505 | (name "Pin_6" 506 | (effects 507 | (font 508 | (size 1.27 1.27) 509 | ) 510 | ) 511 | ) 512 | (number "6" 513 | (effects 514 | (font 515 | (size 1.27 1.27) 516 | ) 517 | ) 518 | ) 519 | ) 520 | (pin passive line 521 | (at -5.08 -2.54 0) 522 | (length 3.81) 523 | (name "Pin_7" 524 | (effects 525 | (font 526 | (size 1.27 1.27) 527 | ) 528 | ) 529 | ) 530 | (number "7" 531 | (effects 532 | (font 533 | (size 1.27 1.27) 534 | ) 535 | ) 536 | ) 537 | ) 538 | (pin passive line 539 | (at -5.08 -5.08 0) 540 | (length 3.81) 541 | (name "Pin_8" 542 | (effects 543 | (font 544 | (size 1.27 1.27) 545 | ) 546 | ) 547 | ) 548 | (number "8" 549 | (effects 550 | (font 551 | (size 1.27 1.27) 552 | ) 553 | ) 554 | ) 555 | ) 556 | (pin passive line 557 | (at -5.08 -7.62 0) 558 | (length 3.81) 559 | (name "Pin_9" 560 | (effects 561 | (font 562 | (size 1.27 1.27) 563 | ) 564 | ) 565 | ) 566 | (number "9" 567 | (effects 568 | (font 569 | (size 1.27 1.27) 570 | ) 571 | ) 572 | ) 573 | ) 574 | ) 575 | ) 576 | (symbol "Connector_Generic:Conn_01x16" 577 | (pin_names 578 | (offset 1.016) hide) 579 | (exclude_from_sim no) 580 | (in_bom yes) 581 | (on_board yes) 582 | (property "Reference" "J" 583 | (at 0 20.32 0) 584 | (effects 585 | (font 586 | (size 1.27 1.27) 587 | ) 588 | ) 589 | ) 590 | (property "Value" "Conn_01x16" 591 | (at 0 -22.86 0) 592 | (effects 593 | (font 594 | (size 1.27 1.27) 595 | ) 596 | ) 597 | ) 598 | (property "Footprint" "" 599 | (at 0 0 0) 600 | (effects 601 | (font 602 | (size 1.27 1.27) 603 | ) 604 | (hide yes) 605 | ) 606 | ) 607 | (property "Datasheet" "~" 608 | (at 0 0 0) 609 | (effects 610 | (font 611 | (size 1.27 1.27) 612 | ) 613 | (hide yes) 614 | ) 615 | ) 616 | (property "Description" "Generic connector, single row, 01x16, script generated (kicad-library-utils/schlib/autogen/connector/)" 617 | (at 0 0 0) 618 | (effects 619 | (font 620 | (size 1.27 1.27) 621 | ) 622 | (hide yes) 623 | ) 624 | ) 625 | (property "ki_keywords" "connector" 626 | (at 0 0 0) 627 | (effects 628 | (font 629 | (size 1.27 1.27) 630 | ) 631 | (hide yes) 632 | ) 633 | ) 634 | (property "ki_fp_filters" "Connector*:*_1x??_*" 635 | (at 0 0 0) 636 | (effects 637 | (font 638 | (size 1.27 1.27) 639 | ) 640 | (hide yes) 641 | ) 642 | ) 643 | (symbol "Conn_01x16_1_1" 644 | (rectangle 645 | (start -1.27 -20.193) 646 | (end 0 -20.447) 647 | (stroke 648 | (width 0.1524) 649 | (type default) 650 | ) 651 | (fill 652 | (type none) 653 | ) 654 | ) 655 | (rectangle 656 | (start -1.27 -17.653) 657 | (end 0 -17.907) 658 | (stroke 659 | (width 0.1524) 660 | (type default) 661 | ) 662 | (fill 663 | (type none) 664 | ) 665 | ) 666 | (rectangle 667 | (start -1.27 -15.113) 668 | (end 0 -15.367) 669 | (stroke 670 | (width 0.1524) 671 | (type default) 672 | ) 673 | (fill 674 | (type none) 675 | ) 676 | ) 677 | (rectangle 678 | (start -1.27 -12.573) 679 | (end 0 -12.827) 680 | (stroke 681 | (width 0.1524) 682 | (type default) 683 | ) 684 | (fill 685 | (type none) 686 | ) 687 | ) 688 | (rectangle 689 | (start -1.27 -10.033) 690 | (end 0 -10.287) 691 | (stroke 692 | (width 0.1524) 693 | (type default) 694 | ) 695 | (fill 696 | (type none) 697 | ) 698 | ) 699 | (rectangle 700 | (start -1.27 -7.493) 701 | (end 0 -7.747) 702 | (stroke 703 | (width 0.1524) 704 | (type default) 705 | ) 706 | (fill 707 | (type none) 708 | ) 709 | ) 710 | (rectangle 711 | (start -1.27 -4.953) 712 | (end 0 -5.207) 713 | (stroke 714 | (width 0.1524) 715 | (type default) 716 | ) 717 | (fill 718 | (type none) 719 | ) 720 | ) 721 | (rectangle 722 | (start -1.27 -2.413) 723 | (end 0 -2.667) 724 | (stroke 725 | (width 0.1524) 726 | (type default) 727 | ) 728 | (fill 729 | (type none) 730 | ) 731 | ) 732 | (rectangle 733 | (start -1.27 0.127) 734 | (end 0 -0.127) 735 | (stroke 736 | (width 0.1524) 737 | (type default) 738 | ) 739 | (fill 740 | (type none) 741 | ) 742 | ) 743 | (rectangle 744 | (start -1.27 2.667) 745 | (end 0 2.413) 746 | (stroke 747 | (width 0.1524) 748 | (type default) 749 | ) 750 | (fill 751 | (type none) 752 | ) 753 | ) 754 | (rectangle 755 | (start -1.27 5.207) 756 | (end 0 4.953) 757 | (stroke 758 | (width 0.1524) 759 | (type default) 760 | ) 761 | (fill 762 | (type none) 763 | ) 764 | ) 765 | (rectangle 766 | (start -1.27 7.747) 767 | (end 0 7.493) 768 | (stroke 769 | (width 0.1524) 770 | (type default) 771 | ) 772 | (fill 773 | (type none) 774 | ) 775 | ) 776 | (rectangle 777 | (start -1.27 10.287) 778 | (end 0 10.033) 779 | (stroke 780 | (width 0.1524) 781 | (type default) 782 | ) 783 | (fill 784 | (type none) 785 | ) 786 | ) 787 | (rectangle 788 | (start -1.27 12.827) 789 | (end 0 12.573) 790 | (stroke 791 | (width 0.1524) 792 | (type default) 793 | ) 794 | (fill 795 | (type none) 796 | ) 797 | ) 798 | (rectangle 799 | (start -1.27 15.367) 800 | (end 0 15.113) 801 | (stroke 802 | (width 0.1524) 803 | (type default) 804 | ) 805 | (fill 806 | (type none) 807 | ) 808 | ) 809 | (rectangle 810 | (start -1.27 17.907) 811 | (end 0 17.653) 812 | (stroke 813 | (width 0.1524) 814 | (type default) 815 | ) 816 | (fill 817 | (type none) 818 | ) 819 | ) 820 | (rectangle 821 | (start -1.27 19.05) 822 | (end 1.27 -21.59) 823 | (stroke 824 | (width 0.254) 825 | (type default) 826 | ) 827 | (fill 828 | (type background) 829 | ) 830 | ) 831 | (pin passive line 832 | (at -5.08 17.78 0) 833 | (length 3.81) 834 | (name "Pin_1" 835 | (effects 836 | (font 837 | (size 1.27 1.27) 838 | ) 839 | ) 840 | ) 841 | (number "1" 842 | (effects 843 | (font 844 | (size 1.27 1.27) 845 | ) 846 | ) 847 | ) 848 | ) 849 | (pin passive line 850 | (at -5.08 -5.08 0) 851 | (length 3.81) 852 | (name "Pin_10" 853 | (effects 854 | (font 855 | (size 1.27 1.27) 856 | ) 857 | ) 858 | ) 859 | (number "10" 860 | (effects 861 | (font 862 | (size 1.27 1.27) 863 | ) 864 | ) 865 | ) 866 | ) 867 | (pin passive line 868 | (at -5.08 -7.62 0) 869 | (length 3.81) 870 | (name "Pin_11" 871 | (effects 872 | (font 873 | (size 1.27 1.27) 874 | ) 875 | ) 876 | ) 877 | (number "11" 878 | (effects 879 | (font 880 | (size 1.27 1.27) 881 | ) 882 | ) 883 | ) 884 | ) 885 | (pin passive line 886 | (at -5.08 -10.16 0) 887 | (length 3.81) 888 | (name "Pin_12" 889 | (effects 890 | (font 891 | (size 1.27 1.27) 892 | ) 893 | ) 894 | ) 895 | (number "12" 896 | (effects 897 | (font 898 | (size 1.27 1.27) 899 | ) 900 | ) 901 | ) 902 | ) 903 | (pin passive line 904 | (at -5.08 -12.7 0) 905 | (length 3.81) 906 | (name "Pin_13" 907 | (effects 908 | (font 909 | (size 1.27 1.27) 910 | ) 911 | ) 912 | ) 913 | (number "13" 914 | (effects 915 | (font 916 | (size 1.27 1.27) 917 | ) 918 | ) 919 | ) 920 | ) 921 | (pin passive line 922 | (at -5.08 -15.24 0) 923 | (length 3.81) 924 | (name "Pin_14" 925 | (effects 926 | (font 927 | (size 1.27 1.27) 928 | ) 929 | ) 930 | ) 931 | (number "14" 932 | (effects 933 | (font 934 | (size 1.27 1.27) 935 | ) 936 | ) 937 | ) 938 | ) 939 | (pin passive line 940 | (at -5.08 -17.78 0) 941 | (length 3.81) 942 | (name "Pin_15" 943 | (effects 944 | (font 945 | (size 1.27 1.27) 946 | ) 947 | ) 948 | ) 949 | (number "15" 950 | (effects 951 | (font 952 | (size 1.27 1.27) 953 | ) 954 | ) 955 | ) 956 | ) 957 | (pin passive line 958 | (at -5.08 -20.32 0) 959 | (length 3.81) 960 | (name "Pin_16" 961 | (effects 962 | (font 963 | (size 1.27 1.27) 964 | ) 965 | ) 966 | ) 967 | (number "16" 968 | (effects 969 | (font 970 | (size 1.27 1.27) 971 | ) 972 | ) 973 | ) 974 | ) 975 | (pin passive line 976 | (at -5.08 15.24 0) 977 | (length 3.81) 978 | (name "Pin_2" 979 | (effects 980 | (font 981 | (size 1.27 1.27) 982 | ) 983 | ) 984 | ) 985 | (number "2" 986 | (effects 987 | (font 988 | (size 1.27 1.27) 989 | ) 990 | ) 991 | ) 992 | ) 993 | (pin passive line 994 | (at -5.08 12.7 0) 995 | (length 3.81) 996 | (name "Pin_3" 997 | (effects 998 | (font 999 | (size 1.27 1.27) 1000 | ) 1001 | ) 1002 | ) 1003 | (number "3" 1004 | (effects 1005 | (font 1006 | (size 1.27 1.27) 1007 | ) 1008 | ) 1009 | ) 1010 | ) 1011 | (pin passive line 1012 | (at -5.08 10.16 0) 1013 | (length 3.81) 1014 | (name "Pin_4" 1015 | (effects 1016 | (font 1017 | (size 1.27 1.27) 1018 | ) 1019 | ) 1020 | ) 1021 | (number "4" 1022 | (effects 1023 | (font 1024 | (size 1.27 1.27) 1025 | ) 1026 | ) 1027 | ) 1028 | ) 1029 | (pin passive line 1030 | (at -5.08 7.62 0) 1031 | (length 3.81) 1032 | (name "Pin_5" 1033 | (effects 1034 | (font 1035 | (size 1.27 1.27) 1036 | ) 1037 | ) 1038 | ) 1039 | (number "5" 1040 | (effects 1041 | (font 1042 | (size 1.27 1.27) 1043 | ) 1044 | ) 1045 | ) 1046 | ) 1047 | (pin passive line 1048 | (at -5.08 5.08 0) 1049 | (length 3.81) 1050 | (name "Pin_6" 1051 | (effects 1052 | (font 1053 | (size 1.27 1.27) 1054 | ) 1055 | ) 1056 | ) 1057 | (number "6" 1058 | (effects 1059 | (font 1060 | (size 1.27 1.27) 1061 | ) 1062 | ) 1063 | ) 1064 | ) 1065 | (pin passive line 1066 | (at -5.08 2.54 0) 1067 | (length 3.81) 1068 | (name "Pin_7" 1069 | (effects 1070 | (font 1071 | (size 1.27 1.27) 1072 | ) 1073 | ) 1074 | ) 1075 | (number "7" 1076 | (effects 1077 | (font 1078 | (size 1.27 1.27) 1079 | ) 1080 | ) 1081 | ) 1082 | ) 1083 | (pin passive line 1084 | (at -5.08 0 0) 1085 | (length 3.81) 1086 | (name "Pin_8" 1087 | (effects 1088 | (font 1089 | (size 1.27 1.27) 1090 | ) 1091 | ) 1092 | ) 1093 | (number "8" 1094 | (effects 1095 | (font 1096 | (size 1.27 1.27) 1097 | ) 1098 | ) 1099 | ) 1100 | ) 1101 | (pin passive line 1102 | (at -5.08 -2.54 0) 1103 | (length 3.81) 1104 | (name "Pin_9" 1105 | (effects 1106 | (font 1107 | (size 1.27 1.27) 1108 | ) 1109 | ) 1110 | ) 1111 | (number "9" 1112 | (effects 1113 | (font 1114 | (size 1.27 1.27) 1115 | ) 1116 | ) 1117 | ) 1118 | ) 1119 | ) 1120 | ) 1121 | (symbol "Device:C" 1122 | (pin_numbers hide) 1123 | (pin_names 1124 | (offset 0.254) 1125 | ) 1126 | (exclude_from_sim no) 1127 | (in_bom yes) 1128 | (on_board yes) 1129 | (property "Reference" "C" 1130 | (at 0.635 2.54 0) 1131 | (effects 1132 | (font 1133 | (size 1.27 1.27) 1134 | ) 1135 | (justify left) 1136 | ) 1137 | ) 1138 | (property "Value" "C" 1139 | (at 0.635 -2.54 0) 1140 | (effects 1141 | (font 1142 | (size 1.27 1.27) 1143 | ) 1144 | (justify left) 1145 | ) 1146 | ) 1147 | (property "Footprint" "" 1148 | (at 0.9652 -3.81 0) 1149 | (effects 1150 | (font 1151 | (size 1.27 1.27) 1152 | ) 1153 | (hide yes) 1154 | ) 1155 | ) 1156 | (property "Datasheet" "~" 1157 | (at 0 0 0) 1158 | (effects 1159 | (font 1160 | (size 1.27 1.27) 1161 | ) 1162 | (hide yes) 1163 | ) 1164 | ) 1165 | (property "Description" "Unpolarized capacitor" 1166 | (at 0 0 0) 1167 | (effects 1168 | (font 1169 | (size 1.27 1.27) 1170 | ) 1171 | (hide yes) 1172 | ) 1173 | ) 1174 | (property "ki_keywords" "cap capacitor" 1175 | (at 0 0 0) 1176 | (effects 1177 | (font 1178 | (size 1.27 1.27) 1179 | ) 1180 | (hide yes) 1181 | ) 1182 | ) 1183 | (property "ki_fp_filters" "C_*" 1184 | (at 0 0 0) 1185 | (effects 1186 | (font 1187 | (size 1.27 1.27) 1188 | ) 1189 | (hide yes) 1190 | ) 1191 | ) 1192 | (symbol "C_0_1" 1193 | (polyline 1194 | (pts 1195 | (xy -2.032 -0.762) (xy 2.032 -0.762) 1196 | ) 1197 | (stroke 1198 | (width 0.508) 1199 | (type default) 1200 | ) 1201 | (fill 1202 | (type none) 1203 | ) 1204 | ) 1205 | (polyline 1206 | (pts 1207 | (xy -2.032 0.762) (xy 2.032 0.762) 1208 | ) 1209 | (stroke 1210 | (width 0.508) 1211 | (type default) 1212 | ) 1213 | (fill 1214 | (type none) 1215 | ) 1216 | ) 1217 | ) 1218 | (symbol "C_1_1" 1219 | (pin passive line 1220 | (at 0 3.81 270) 1221 | (length 2.794) 1222 | (name "~" 1223 | (effects 1224 | (font 1225 | (size 1.27 1.27) 1226 | ) 1227 | ) 1228 | ) 1229 | (number "1" 1230 | (effects 1231 | (font 1232 | (size 1.27 1.27) 1233 | ) 1234 | ) 1235 | ) 1236 | ) 1237 | (pin passive line 1238 | (at 0 -3.81 90) 1239 | (length 2.794) 1240 | (name "~" 1241 | (effects 1242 | (font 1243 | (size 1.27 1.27) 1244 | ) 1245 | ) 1246 | ) 1247 | (number "2" 1248 | (effects 1249 | (font 1250 | (size 1.27 1.27) 1251 | ) 1252 | ) 1253 | ) 1254 | ) 1255 | ) 1256 | ) 1257 | (symbol "Device:D" 1258 | (pin_numbers hide) 1259 | (pin_names 1260 | (offset 1.016) hide) 1261 | (exclude_from_sim no) 1262 | (in_bom yes) 1263 | (on_board yes) 1264 | (property "Reference" "D" 1265 | (at 0 2.54 0) 1266 | (effects 1267 | (font 1268 | (size 1.27 1.27) 1269 | ) 1270 | ) 1271 | ) 1272 | (property "Value" "D" 1273 | (at 0 -2.54 0) 1274 | (effects 1275 | (font 1276 | (size 1.27 1.27) 1277 | ) 1278 | ) 1279 | ) 1280 | (property "Footprint" "" 1281 | (at 0 0 0) 1282 | (effects 1283 | (font 1284 | (size 1.27 1.27) 1285 | ) 1286 | (hide yes) 1287 | ) 1288 | ) 1289 | (property "Datasheet" "~" 1290 | (at 0 0 0) 1291 | (effects 1292 | (font 1293 | (size 1.27 1.27) 1294 | ) 1295 | (hide yes) 1296 | ) 1297 | ) 1298 | (property "Description" "Diode" 1299 | (at 0 0 0) 1300 | (effects 1301 | (font 1302 | (size 1.27 1.27) 1303 | ) 1304 | (hide yes) 1305 | ) 1306 | ) 1307 | (property "Sim.Device" "D" 1308 | (at 0 0 0) 1309 | (effects 1310 | (font 1311 | (size 1.27 1.27) 1312 | ) 1313 | (hide yes) 1314 | ) 1315 | ) 1316 | (property "Sim.Pins" "1=K 2=A" 1317 | (at 0 0 0) 1318 | (effects 1319 | (font 1320 | (size 1.27 1.27) 1321 | ) 1322 | (hide yes) 1323 | ) 1324 | ) 1325 | (property "ki_keywords" "diode" 1326 | (at 0 0 0) 1327 | (effects 1328 | (font 1329 | (size 1.27 1.27) 1330 | ) 1331 | (hide yes) 1332 | ) 1333 | ) 1334 | (property "ki_fp_filters" "TO-???* *_Diode_* *SingleDiode* D_*" 1335 | (at 0 0 0) 1336 | (effects 1337 | (font 1338 | (size 1.27 1.27) 1339 | ) 1340 | (hide yes) 1341 | ) 1342 | ) 1343 | (symbol "D_0_1" 1344 | (polyline 1345 | (pts 1346 | (xy -1.27 1.27) (xy -1.27 -1.27) 1347 | ) 1348 | (stroke 1349 | (width 0.254) 1350 | (type default) 1351 | ) 1352 | (fill 1353 | (type none) 1354 | ) 1355 | ) 1356 | (polyline 1357 | (pts 1358 | (xy 1.27 0) (xy -1.27 0) 1359 | ) 1360 | (stroke 1361 | (width 0) 1362 | (type default) 1363 | ) 1364 | (fill 1365 | (type none) 1366 | ) 1367 | ) 1368 | (polyline 1369 | (pts 1370 | (xy 1.27 1.27) (xy 1.27 -1.27) (xy -1.27 0) (xy 1.27 1.27) 1371 | ) 1372 | (stroke 1373 | (width 0.254) 1374 | (type default) 1375 | ) 1376 | (fill 1377 | (type none) 1378 | ) 1379 | ) 1380 | ) 1381 | (symbol "D_1_1" 1382 | (pin passive line 1383 | (at -3.81 0 0) 1384 | (length 2.54) 1385 | (name "K" 1386 | (effects 1387 | (font 1388 | (size 1.27 1.27) 1389 | ) 1390 | ) 1391 | ) 1392 | (number "1" 1393 | (effects 1394 | (font 1395 | (size 1.27 1.27) 1396 | ) 1397 | ) 1398 | ) 1399 | ) 1400 | (pin passive line 1401 | (at 3.81 0 180) 1402 | (length 2.54) 1403 | (name "A" 1404 | (effects 1405 | (font 1406 | (size 1.27 1.27) 1407 | ) 1408 | ) 1409 | ) 1410 | (number "2" 1411 | (effects 1412 | (font 1413 | (size 1.27 1.27) 1414 | ) 1415 | ) 1416 | ) 1417 | ) 1418 | ) 1419 | ) 1420 | (symbol "Device:R" 1421 | (pin_numbers hide) 1422 | (pin_names 1423 | (offset 0) 1424 | ) 1425 | (exclude_from_sim no) 1426 | (in_bom yes) 1427 | (on_board yes) 1428 | (property "Reference" "R" 1429 | (at 2.032 0 90) 1430 | (effects 1431 | (font 1432 | (size 1.27 1.27) 1433 | ) 1434 | ) 1435 | ) 1436 | (property "Value" "R" 1437 | (at 0 0 90) 1438 | (effects 1439 | (font 1440 | (size 1.27 1.27) 1441 | ) 1442 | ) 1443 | ) 1444 | (property "Footprint" "" 1445 | (at -1.778 0 90) 1446 | (effects 1447 | (font 1448 | (size 1.27 1.27) 1449 | ) 1450 | (hide yes) 1451 | ) 1452 | ) 1453 | (property "Datasheet" "~" 1454 | (at 0 0 0) 1455 | (effects 1456 | (font 1457 | (size 1.27 1.27) 1458 | ) 1459 | (hide yes) 1460 | ) 1461 | ) 1462 | (property "Description" "Resistor" 1463 | (at 0 0 0) 1464 | (effects 1465 | (font 1466 | (size 1.27 1.27) 1467 | ) 1468 | (hide yes) 1469 | ) 1470 | ) 1471 | (property "ki_keywords" "R res resistor" 1472 | (at 0 0 0) 1473 | (effects 1474 | (font 1475 | (size 1.27 1.27) 1476 | ) 1477 | (hide yes) 1478 | ) 1479 | ) 1480 | (property "ki_fp_filters" "R_*" 1481 | (at 0 0 0) 1482 | (effects 1483 | (font 1484 | (size 1.27 1.27) 1485 | ) 1486 | (hide yes) 1487 | ) 1488 | ) 1489 | (symbol "R_0_1" 1490 | (rectangle 1491 | (start -1.016 -2.54) 1492 | (end 1.016 2.54) 1493 | (stroke 1494 | (width 0.254) 1495 | (type default) 1496 | ) 1497 | (fill 1498 | (type none) 1499 | ) 1500 | ) 1501 | ) 1502 | (symbol "R_1_1" 1503 | (pin passive line 1504 | (at 0 3.81 270) 1505 | (length 1.27) 1506 | (name "~" 1507 | (effects 1508 | (font 1509 | (size 1.27 1.27) 1510 | ) 1511 | ) 1512 | ) 1513 | (number "1" 1514 | (effects 1515 | (font 1516 | (size 1.27 1.27) 1517 | ) 1518 | ) 1519 | ) 1520 | ) 1521 | (pin passive line 1522 | (at 0 -3.81 90) 1523 | (length 1.27) 1524 | (name "~" 1525 | (effects 1526 | (font 1527 | (size 1.27 1.27) 1528 | ) 1529 | ) 1530 | ) 1531 | (number "2" 1532 | (effects 1533 | (font 1534 | (size 1.27 1.27) 1535 | ) 1536 | ) 1537 | ) 1538 | ) 1539 | ) 1540 | ) 1541 | (symbol "Device:R_Potentiometer" 1542 | (pin_names 1543 | (offset 1.016) hide) 1544 | (exclude_from_sim no) 1545 | (in_bom yes) 1546 | (on_board yes) 1547 | (property "Reference" "RV" 1548 | (at -4.445 0 90) 1549 | (effects 1550 | (font 1551 | (size 1.27 1.27) 1552 | ) 1553 | ) 1554 | ) 1555 | (property "Value" "R_Potentiometer" 1556 | (at -2.54 0 90) 1557 | (effects 1558 | (font 1559 | (size 1.27 1.27) 1560 | ) 1561 | ) 1562 | ) 1563 | (property "Footprint" "" 1564 | (at 0 0 0) 1565 | (effects 1566 | (font 1567 | (size 1.27 1.27) 1568 | ) 1569 | (hide yes) 1570 | ) 1571 | ) 1572 | (property "Datasheet" "~" 1573 | (at 0 0 0) 1574 | (effects 1575 | (font 1576 | (size 1.27 1.27) 1577 | ) 1578 | (hide yes) 1579 | ) 1580 | ) 1581 | (property "Description" "Potentiometer" 1582 | (at 0 0 0) 1583 | (effects 1584 | (font 1585 | (size 1.27 1.27) 1586 | ) 1587 | (hide yes) 1588 | ) 1589 | ) 1590 | (property "ki_keywords" "resistor variable" 1591 | (at 0 0 0) 1592 | (effects 1593 | (font 1594 | (size 1.27 1.27) 1595 | ) 1596 | (hide yes) 1597 | ) 1598 | ) 1599 | (property "ki_fp_filters" "Potentiometer*" 1600 | (at 0 0 0) 1601 | (effects 1602 | (font 1603 | (size 1.27 1.27) 1604 | ) 1605 | (hide yes) 1606 | ) 1607 | ) 1608 | (symbol "R_Potentiometer_0_1" 1609 | (polyline 1610 | (pts 1611 | (xy 2.54 0) (xy 1.524 0) 1612 | ) 1613 | (stroke 1614 | (width 0) 1615 | (type default) 1616 | ) 1617 | (fill 1618 | (type none) 1619 | ) 1620 | ) 1621 | (polyline 1622 | (pts 1623 | (xy 1.143 0) (xy 2.286 0.508) (xy 2.286 -0.508) (xy 1.143 0) 1624 | ) 1625 | (stroke 1626 | (width 0) 1627 | (type default) 1628 | ) 1629 | (fill 1630 | (type outline) 1631 | ) 1632 | ) 1633 | (rectangle 1634 | (start 1.016 2.54) 1635 | (end -1.016 -2.54) 1636 | (stroke 1637 | (width 0.254) 1638 | (type default) 1639 | ) 1640 | (fill 1641 | (type none) 1642 | ) 1643 | ) 1644 | ) 1645 | (symbol "R_Potentiometer_1_1" 1646 | (pin passive line 1647 | (at 0 3.81 270) 1648 | (length 1.27) 1649 | (name "1" 1650 | (effects 1651 | (font 1652 | (size 1.27 1.27) 1653 | ) 1654 | ) 1655 | ) 1656 | (number "1" 1657 | (effects 1658 | (font 1659 | (size 1.27 1.27) 1660 | ) 1661 | ) 1662 | ) 1663 | ) 1664 | (pin passive line 1665 | (at 3.81 0 180) 1666 | (length 1.27) 1667 | (name "2" 1668 | (effects 1669 | (font 1670 | (size 1.27 1.27) 1671 | ) 1672 | ) 1673 | ) 1674 | (number "2" 1675 | (effects 1676 | (font 1677 | (size 1.27 1.27) 1678 | ) 1679 | ) 1680 | ) 1681 | ) 1682 | (pin passive line 1683 | (at 0 -3.81 90) 1684 | (length 1.27) 1685 | (name "3" 1686 | (effects 1687 | (font 1688 | (size 1.27 1.27) 1689 | ) 1690 | ) 1691 | ) 1692 | (number "3" 1693 | (effects 1694 | (font 1695 | (size 1.27 1.27) 1696 | ) 1697 | ) 1698 | ) 1699 | ) 1700 | ) 1701 | ) 1702 | (symbol "Mechanical:MountingHole_Pad" 1703 | (pin_numbers hide) 1704 | (pin_names 1705 | (offset 1.016) hide) 1706 | (exclude_from_sim yes) 1707 | (in_bom no) 1708 | (on_board yes) 1709 | (property "Reference" "H" 1710 | (at 0 6.35 0) 1711 | (effects 1712 | (font 1713 | (size 1.27 1.27) 1714 | ) 1715 | ) 1716 | ) 1717 | (property "Value" "MountingHole_Pad" 1718 | (at 0 4.445 0) 1719 | (effects 1720 | (font 1721 | (size 1.27 1.27) 1722 | ) 1723 | ) 1724 | ) 1725 | (property "Footprint" "" 1726 | (at 0 0 0) 1727 | (effects 1728 | (font 1729 | (size 1.27 1.27) 1730 | ) 1731 | (hide yes) 1732 | ) 1733 | ) 1734 | (property "Datasheet" "~" 1735 | (at 0 0 0) 1736 | (effects 1737 | (font 1738 | (size 1.27 1.27) 1739 | ) 1740 | (hide yes) 1741 | ) 1742 | ) 1743 | (property "Description" "Mounting Hole with connection" 1744 | (at 0 0 0) 1745 | (effects 1746 | (font 1747 | (size 1.27 1.27) 1748 | ) 1749 | (hide yes) 1750 | ) 1751 | ) 1752 | (property "ki_keywords" "mounting hole" 1753 | (at 0 0 0) 1754 | (effects 1755 | (font 1756 | (size 1.27 1.27) 1757 | ) 1758 | (hide yes) 1759 | ) 1760 | ) 1761 | (property "ki_fp_filters" "MountingHole*Pad*" 1762 | (at 0 0 0) 1763 | (effects 1764 | (font 1765 | (size 1.27 1.27) 1766 | ) 1767 | (hide yes) 1768 | ) 1769 | ) 1770 | (symbol "MountingHole_Pad_0_1" 1771 | (circle 1772 | (center 0 1.27) 1773 | (radius 1.27) 1774 | (stroke 1775 | (width 1.27) 1776 | (type default) 1777 | ) 1778 | (fill 1779 | (type none) 1780 | ) 1781 | ) 1782 | ) 1783 | (symbol "MountingHole_Pad_1_1" 1784 | (pin input line 1785 | (at 0 -2.54 90) 1786 | (length 2.54) 1787 | (name "1" 1788 | (effects 1789 | (font 1790 | (size 1.27 1.27) 1791 | ) 1792 | ) 1793 | ) 1794 | (number "1" 1795 | (effects 1796 | (font 1797 | (size 1.27 1.27) 1798 | ) 1799 | ) 1800 | ) 1801 | ) 1802 | ) 1803 | ) 1804 | (symbol "components:MAX942" 1805 | (pin_names 1806 | (offset 0.127) 1807 | ) 1808 | (exclude_from_sim no) 1809 | (in_bom yes) 1810 | (on_board yes) 1811 | (property "Reference" "U" 1812 | (at 0 5.08 0) 1813 | (effects 1814 | (font 1815 | (size 1.27 1.27) 1816 | ) 1817 | (justify left) 1818 | ) 1819 | ) 1820 | (property "Value" "MAX942" 1821 | (at 0 -5.08 0) 1822 | (effects 1823 | (font 1824 | (size 1.27 1.27) 1825 | ) 1826 | (justify left) 1827 | ) 1828 | ) 1829 | (property "Footprint" "" 1830 | (at 0 0 0) 1831 | (effects 1832 | (font 1833 | (size 1.27 1.27) 1834 | ) 1835 | (hide yes) 1836 | ) 1837 | ) 1838 | (property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm358.pdf" 1839 | (at 0 0 0) 1840 | (effects 1841 | (font 1842 | (size 1.27 1.27) 1843 | ) 1844 | (hide yes) 1845 | ) 1846 | ) 1847 | (property "Description" "Dual Operational Amplifiers, DIP-8/SOIC-8/TSSOP-8/VSSOP-8" 1848 | (at 0 0 0) 1849 | (effects 1850 | (font 1851 | (size 1.27 1.27) 1852 | ) 1853 | (hide yes) 1854 | ) 1855 | ) 1856 | (property "ki_locked" "" 1857 | (at 0 0 0) 1858 | (effects 1859 | (font 1860 | (size 1.27 1.27) 1861 | ) 1862 | ) 1863 | ) 1864 | (property "ki_keywords" "dual opamp" 1865 | (at 0 0 0) 1866 | (effects 1867 | (font 1868 | (size 1.27 1.27) 1869 | ) 1870 | (hide yes) 1871 | ) 1872 | ) 1873 | (property "ki_fp_filters" "SOIC*3.9x4.9mm*P1.27mm* DIP*W7.62mm* TO*99* OnSemi*Micro8* TSSOP*3x3mm*P0.65mm* TSSOP*4.4x3mm*P0.65mm* MSOP*3x3mm*P0.65mm* SSOP*3.9x4.9mm*P0.635mm* LFCSP*2x2mm*P0.5mm* *SIP* SOIC*5.3x6.2mm*P1.27mm*" 1874 | (at 0 0 0) 1875 | (effects 1876 | (font 1877 | (size 1.27 1.27) 1878 | ) 1879 | (hide yes) 1880 | ) 1881 | ) 1882 | (symbol "MAX942_1_1" 1883 | (polyline 1884 | (pts 1885 | (xy -5.08 5.08) (xy 5.08 0) (xy -5.08 -5.08) (xy -5.08 5.08) 1886 | ) 1887 | (stroke 1888 | (width 0.254) 1889 | (type default) 1890 | ) 1891 | (fill 1892 | (type background) 1893 | ) 1894 | ) 1895 | (pin output line 1896 | (at 7.62 0 180) 1897 | (length 2.54) 1898 | (name "~" 1899 | (effects 1900 | (font 1901 | (size 1.27 1.27) 1902 | ) 1903 | ) 1904 | ) 1905 | (number "1" 1906 | (effects 1907 | (font 1908 | (size 1.27 1.27) 1909 | ) 1910 | ) 1911 | ) 1912 | ) 1913 | (pin input line 1914 | (at -7.62 -2.54 0) 1915 | (length 2.54) 1916 | (name "-" 1917 | (effects 1918 | (font 1919 | (size 1.27 1.27) 1920 | ) 1921 | ) 1922 | ) 1923 | (number "2" 1924 | (effects 1925 | (font 1926 | (size 1.27 1.27) 1927 | ) 1928 | ) 1929 | ) 1930 | ) 1931 | (pin input line 1932 | (at -7.62 2.54 0) 1933 | (length 2.54) 1934 | (name "+" 1935 | (effects 1936 | (font 1937 | (size 1.27 1.27) 1938 | ) 1939 | ) 1940 | ) 1941 | (number "3" 1942 | (effects 1943 | (font 1944 | (size 1.27 1.27) 1945 | ) 1946 | ) 1947 | ) 1948 | ) 1949 | ) 1950 | (symbol "MAX942_2_1" 1951 | (polyline 1952 | (pts 1953 | (xy -5.08 5.08) (xy 5.08 0) (xy -5.08 -5.08) (xy -5.08 5.08) 1954 | ) 1955 | (stroke 1956 | (width 0.254) 1957 | (type default) 1958 | ) 1959 | (fill 1960 | (type background) 1961 | ) 1962 | ) 1963 | (pin input line 1964 | (at -7.62 2.54 0) 1965 | (length 2.54) 1966 | (name "+" 1967 | (effects 1968 | (font 1969 | (size 1.27 1.27) 1970 | ) 1971 | ) 1972 | ) 1973 | (number "5" 1974 | (effects 1975 | (font 1976 | (size 1.27 1.27) 1977 | ) 1978 | ) 1979 | ) 1980 | ) 1981 | (pin input line 1982 | (at -7.62 -2.54 0) 1983 | (length 2.54) 1984 | (name "-" 1985 | (effects 1986 | (font 1987 | (size 1.27 1.27) 1988 | ) 1989 | ) 1990 | ) 1991 | (number "6" 1992 | (effects 1993 | (font 1994 | (size 1.27 1.27) 1995 | ) 1996 | ) 1997 | ) 1998 | ) 1999 | (pin output line 2000 | (at 7.62 0 180) 2001 | (length 2.54) 2002 | (name "~" 2003 | (effects 2004 | (font 2005 | (size 1.27 1.27) 2006 | ) 2007 | ) 2008 | ) 2009 | (number "7" 2010 | (effects 2011 | (font 2012 | (size 1.27 1.27) 2013 | ) 2014 | ) 2015 | ) 2016 | ) 2017 | ) 2018 | (symbol "MAX942_3_1" 2019 | (pin power_in line 2020 | (at -2.54 -7.62 90) 2021 | (length 3.81) 2022 | (name "V-" 2023 | (effects 2024 | (font 2025 | (size 1.27 1.27) 2026 | ) 2027 | ) 2028 | ) 2029 | (number "4" 2030 | (effects 2031 | (font 2032 | (size 1.27 1.27) 2033 | ) 2034 | ) 2035 | ) 2036 | ) 2037 | (pin power_in line 2038 | (at -2.54 7.62 270) 2039 | (length 3.81) 2040 | (name "V+" 2041 | (effects 2042 | (font 2043 | (size 1.27 1.27) 2044 | ) 2045 | ) 2046 | ) 2047 | (number "8" 2048 | (effects 2049 | (font 2050 | (size 1.27 1.27) 2051 | ) 2052 | ) 2053 | ) 2054 | ) 2055 | ) 2056 | ) 2057 | (symbol "power:+3.3V" 2058 | (power) 2059 | (pin_numbers hide) 2060 | (pin_names 2061 | (offset 0) hide) 2062 | (exclude_from_sim no) 2063 | (in_bom yes) 2064 | (on_board yes) 2065 | (property "Reference" "#PWR" 2066 | (at 0 -3.81 0) 2067 | (effects 2068 | (font 2069 | (size 1.27 1.27) 2070 | ) 2071 | (hide yes) 2072 | ) 2073 | ) 2074 | (property "Value" "+3.3V" 2075 | (at 0 3.556 0) 2076 | (effects 2077 | (font 2078 | (size 1.27 1.27) 2079 | ) 2080 | ) 2081 | ) 2082 | (property "Footprint" "" 2083 | (at 0 0 0) 2084 | (effects 2085 | (font 2086 | (size 1.27 1.27) 2087 | ) 2088 | (hide yes) 2089 | ) 2090 | ) 2091 | (property "Datasheet" "" 2092 | (at 0 0 0) 2093 | (effects 2094 | (font 2095 | (size 1.27 1.27) 2096 | ) 2097 | (hide yes) 2098 | ) 2099 | ) 2100 | (property "Description" "Power symbol creates a global label with name \"+3.3V\"" 2101 | (at 0 0 0) 2102 | (effects 2103 | (font 2104 | (size 1.27 1.27) 2105 | ) 2106 | (hide yes) 2107 | ) 2108 | ) 2109 | (property "ki_keywords" "global power" 2110 | (at 0 0 0) 2111 | (effects 2112 | (font 2113 | (size 1.27 1.27) 2114 | ) 2115 | (hide yes) 2116 | ) 2117 | ) 2118 | (symbol "+3.3V_0_1" 2119 | (polyline 2120 | (pts 2121 | (xy -0.762 1.27) (xy 0 2.54) 2122 | ) 2123 | (stroke 2124 | (width 0) 2125 | (type default) 2126 | ) 2127 | (fill 2128 | (type none) 2129 | ) 2130 | ) 2131 | (polyline 2132 | (pts 2133 | (xy 0 0) (xy 0 2.54) 2134 | ) 2135 | (stroke 2136 | (width 0) 2137 | (type default) 2138 | ) 2139 | (fill 2140 | (type none) 2141 | ) 2142 | ) 2143 | (polyline 2144 | (pts 2145 | (xy 0 2.54) (xy 0.762 1.27) 2146 | ) 2147 | (stroke 2148 | (width 0) 2149 | (type default) 2150 | ) 2151 | (fill 2152 | (type none) 2153 | ) 2154 | ) 2155 | ) 2156 | (symbol "+3.3V_1_1" 2157 | (pin power_in line 2158 | (at 0 0 90) 2159 | (length 0) 2160 | (name "~" 2161 | (effects 2162 | (font 2163 | (size 1.27 1.27) 2164 | ) 2165 | ) 2166 | ) 2167 | (number "1" 2168 | (effects 2169 | (font 2170 | (size 1.27 1.27) 2171 | ) 2172 | ) 2173 | ) 2174 | ) 2175 | ) 2176 | ) 2177 | (symbol "power:GND" 2178 | (power) 2179 | (pin_numbers hide) 2180 | (pin_names 2181 | (offset 0) hide) 2182 | (exclude_from_sim no) 2183 | (in_bom yes) 2184 | (on_board yes) 2185 | (property "Reference" "#PWR" 2186 | (at 0 -6.35 0) 2187 | (effects 2188 | (font 2189 | (size 1.27 1.27) 2190 | ) 2191 | (hide yes) 2192 | ) 2193 | ) 2194 | (property "Value" "GND" 2195 | (at 0 -3.81 0) 2196 | (effects 2197 | (font 2198 | (size 1.27 1.27) 2199 | ) 2200 | ) 2201 | ) 2202 | (property "Footprint" "" 2203 | (at 0 0 0) 2204 | (effects 2205 | (font 2206 | (size 1.27 1.27) 2207 | ) 2208 | (hide yes) 2209 | ) 2210 | ) 2211 | (property "Datasheet" "" 2212 | (at 0 0 0) 2213 | (effects 2214 | (font 2215 | (size 1.27 1.27) 2216 | ) 2217 | (hide yes) 2218 | ) 2219 | ) 2220 | (property "Description" "Power symbol creates a global label with name \"GND\" , ground" 2221 | (at 0 0 0) 2222 | (effects 2223 | (font 2224 | (size 1.27 1.27) 2225 | ) 2226 | (hide yes) 2227 | ) 2228 | ) 2229 | (property "ki_keywords" "global power" 2230 | (at 0 0 0) 2231 | (effects 2232 | (font 2233 | (size 1.27 1.27) 2234 | ) 2235 | (hide yes) 2236 | ) 2237 | ) 2238 | (symbol "GND_0_1" 2239 | (polyline 2240 | (pts 2241 | (xy 0 0) (xy 0 -1.27) (xy 1.27 -1.27) (xy 0 -2.54) (xy -1.27 -1.27) (xy 0 -1.27) 2242 | ) 2243 | (stroke 2244 | (width 0) 2245 | (type default) 2246 | ) 2247 | (fill 2248 | (type none) 2249 | ) 2250 | ) 2251 | ) 2252 | (symbol "GND_1_1" 2253 | (pin power_in line 2254 | (at 0 0 270) 2255 | (length 0) 2256 | (name "~" 2257 | (effects 2258 | (font 2259 | (size 1.27 1.27) 2260 | ) 2261 | ) 2262 | ) 2263 | (number "1" 2264 | (effects 2265 | (font 2266 | (size 1.27 1.27) 2267 | ) 2268 | ) 2269 | ) 2270 | ) 2271 | ) 2272 | ) 2273 | ) 2274 | (junction 2275 | (at 152.4 95.25) 2276 | (diameter 0) 2277 | (color 0 0 0 0) 2278 | (uuid "44822f54-3da7-459d-81c9-676b8ce79c22") 2279 | ) 2280 | (junction 2281 | (at 78.74 90.17) 2282 | (diameter 0) 2283 | (color 0 0 0 0) 2284 | (uuid "51c88add-19cf-40ba-9d3e-17210fe340e6") 2285 | ) 2286 | (junction 2287 | (at 95.25 109.22) 2288 | (diameter 0) 2289 | (color 0 0 0 0) 2290 | (uuid "5c094e1d-431d-4d1c-9109-e5e8abdb0895") 2291 | ) 2292 | (junction 2293 | (at 115.57 109.22) 2294 | (diameter 0) 2295 | (color 0 0 0 0) 2296 | (uuid "746d6806-d41c-4f76-a14e-e26f0c56ac41") 2297 | ) 2298 | (junction 2299 | (at 115.57 74.93) 2300 | (diameter 0) 2301 | (color 0 0 0 0) 2302 | (uuid "7a873049-4361-4d6e-9e9b-a943adcf264f") 2303 | ) 2304 | (junction 2305 | (at 152.4 109.22) 2306 | (diameter 0) 2307 | (color 0 0 0 0) 2308 | (uuid "ad2707ad-c2e6-4755-a0c0-1f21ab3e8c16") 2309 | ) 2310 | (junction 2311 | (at 78.74 109.22) 2312 | (diameter 0) 2313 | (color 0 0 0 0) 2314 | (uuid "ae0d6839-5914-4c52-a025-3bfa22451035") 2315 | ) 2316 | (junction 2317 | (at 139.7 95.25) 2318 | (diameter 0) 2319 | (color 0 0 0 0) 2320 | (uuid "b2457d26-173b-48cf-a1bb-142915d48c16") 2321 | ) 2322 | (junction 2323 | (at 139.7 109.22) 2324 | (diameter 0) 2325 | (color 0 0 0 0) 2326 | (uuid "d160e7d2-9ffd-489c-ab4b-8eb4479341d1") 2327 | ) 2328 | (junction 2329 | (at 95.25 74.93) 2330 | (diameter 0) 2331 | (color 0 0 0 0) 2332 | (uuid "e9352c93-a533-4d7a-b91f-3295dcae5df0") 2333 | ) 2334 | (no_connect 2335 | (at 154.94 143.51) 2336 | (uuid "004533f9-9be3-49c3-b9b5-73f1e88d320e") 2337 | ) 2338 | (no_connect 2339 | (at 154.94 128.27) 2340 | (uuid "0a2a59e6-0ea1-4dc2-a2fe-f33b366c9c1b") 2341 | ) 2342 | (no_connect 2343 | (at 195.58 147.32) 2344 | (uuid "1caeab4a-a428-44d4-ac6e-56fdcf42ee40") 2345 | ) 2346 | (no_connect 2347 | (at 195.58 144.78) 2348 | (uuid "1ff2db69-dc41-4521-8c45-450786033798") 2349 | ) 2350 | (no_connect 2351 | (at 195.58 124.46) 2352 | (uuid "263dee72-1b8a-4700-8d7a-b5cff49c3ec0") 2353 | ) 2354 | (no_connect 2355 | (at 154.94 148.59) 2356 | (uuid "3d51c7fd-6ec2-46ef-9b92-828002b07a22") 2357 | ) 2358 | (no_connect 2359 | (at 154.94 151.13) 2360 | (uuid "41b39fb2-70d2-4876-af43-a48542e68a29") 2361 | ) 2362 | (no_connect 2363 | (at 154.94 146.05) 2364 | (uuid "41e562d7-0d02-431a-85dd-f57a30361598") 2365 | ) 2366 | (no_connect 2367 | (at 195.58 127) 2368 | (uuid "53de897a-ffa3-428e-b63c-100da304e8a8") 2369 | ) 2370 | (no_connect 2371 | (at 195.58 137.16) 2372 | (uuid "5f8b73ed-d4e5-484a-b784-bce282c05a81") 2373 | ) 2374 | (no_connect 2375 | (at 154.94 138.43) 2376 | (uuid "6effe867-4118-42c6-9d79-7ac88af97d14") 2377 | ) 2378 | (no_connect 2379 | (at 195.58 134.62) 2380 | (uuid "709c4ad0-5510-4971-b192-eda4a37a7219") 2381 | ) 2382 | (no_connect 2383 | (at 154.94 153.67) 2384 | (uuid "71916fa8-c862-4cee-ba7d-43a70c0c88a3") 2385 | ) 2386 | (no_connect 2387 | (at 154.94 158.75) 2388 | (uuid "81f4727d-e82d-4259-a2cd-2d2d24e9a78c") 2389 | ) 2390 | (no_connect 2391 | (at 154.94 140.97) 2392 | (uuid "8b61d5ab-9d56-41d0-88fc-e3fc74e70157") 2393 | ) 2394 | (no_connect 2395 | (at 195.58 139.7) 2396 | (uuid "9003b9e3-c529-41b6-b312-9fae4a0f54c8") 2397 | ) 2398 | (no_connect 2399 | (at 154.94 135.89) 2400 | (uuid "90e71c6f-6a4b-446f-9ed8-a4b9a3b8e4c8") 2401 | ) 2402 | (no_connect 2403 | (at 195.58 129.54) 2404 | (uuid "acbb6825-69e4-4c68-bbbb-d368cdcb0f17") 2405 | ) 2406 | (no_connect 2407 | (at 195.58 142.24) 2408 | (uuid "b7469125-7eda-439e-a3d0-a611eb4a0e69") 2409 | ) 2410 | (no_connect 2411 | (at 195.58 149.86) 2412 | (uuid "d542be32-579f-421c-8490-469f660b1c8d") 2413 | ) 2414 | (no_connect 2415 | (at 195.58 152.4) 2416 | (uuid "e880a56a-fd54-452c-b3b6-c763e4c6018b") 2417 | ) 2418 | (no_connect 2419 | (at 195.58 132.08) 2420 | (uuid "efa5e104-0d6e-4ad5-b7f7-cbabd4b7d4b0") 2421 | ) 2422 | (no_connect 2423 | (at 154.94 123.19) 2424 | (uuid "f6713aa5-4815-4f76-bcf0-d8970bf94b4b") 2425 | ) 2426 | (no_connect 2427 | (at 154.94 133.35) 2428 | (uuid "fba33f5c-4f4b-43a9-b342-ffb0b0e85c32") 2429 | ) 2430 | (wire 2431 | (pts 2432 | (xy 78.74 74.93) (xy 95.25 74.93) 2433 | ) 2434 | (stroke 2435 | (width 0) 2436 | (type default) 2437 | ) 2438 | (uuid "08e70f55-4fff-4a1c-a507-2ddd0f7c5865") 2439 | ) 2440 | (wire 2441 | (pts 2442 | (xy 168.91 74.93) (xy 168.91 86.36) 2443 | ) 2444 | (stroke 2445 | (width 0) 2446 | (type default) 2447 | ) 2448 | (uuid "18027a5c-c1b9-49f3-bf0e-369596283e7c") 2449 | ) 2450 | (wire 2451 | (pts 2452 | (xy 139.7 95.25) (xy 139.7 100.33) 2453 | ) 2454 | (stroke 2455 | (width 0) 2456 | (type default) 2457 | ) 2458 | (uuid "185d16ea-e023-4717-a218-9d4d14a9ff30") 2459 | ) 2460 | (wire 2461 | (pts 2462 | (xy 54.61 109.22) (xy 78.74 109.22) 2463 | ) 2464 | (stroke 2465 | (width 0) 2466 | (type default) 2467 | ) 2468 | (uuid "295c84fb-9534-42bb-898a-8e402f3bfed9") 2469 | ) 2470 | (wire 2471 | (pts 2472 | (xy 139.7 95.25) (xy 152.4 95.25) 2473 | ) 2474 | (stroke 2475 | (width 0) 2476 | (type default) 2477 | ) 2478 | (uuid "2c7995e9-a520-44a3-85e9-6339441e965d") 2479 | ) 2480 | (wire 2481 | (pts 2482 | (xy 152.4 109.22) (xy 168.91 109.22) 2483 | ) 2484 | (stroke 2485 | (width 0) 2486 | (type default) 2487 | ) 2488 | (uuid "341cd7af-0c0f-4873-9733-75255f52a637") 2489 | ) 2490 | (wire 2491 | (pts 2492 | (xy 139.7 107.95) (xy 139.7 109.22) 2493 | ) 2494 | (stroke 2495 | (width 0) 2496 | (type default) 2497 | ) 2498 | (uuid "34d918bc-739d-4396-a19d-154879e67fbb") 2499 | ) 2500 | (wire 2501 | (pts 2502 | (xy 149.86 130.81) (xy 154.94 130.81) 2503 | ) 2504 | (stroke 2505 | (width 0) 2506 | (type default) 2507 | ) 2508 | (uuid "36c81bd9-d06f-4a3b-b22c-c3601300934d") 2509 | ) 2510 | (wire 2511 | (pts 2512 | (xy 115.57 68.58) (xy 115.57 74.93) 2513 | ) 2514 | (stroke 2515 | (width 0) 2516 | (type default) 2517 | ) 2518 | (uuid "4218ad84-38b6-4531-90a5-55fdbfbde87c") 2519 | ) 2520 | (wire 2521 | (pts 2522 | (xy 149.86 125.73) (xy 149.86 124.46) 2523 | ) 2524 | (stroke 2525 | (width 0) 2526 | (type default) 2527 | ) 2528 | (uuid "466965d2-06b0-47ac-a560-4f7e921a931b") 2529 | ) 2530 | (wire 2531 | (pts 2532 | (xy 151.13 163.83) (xy 151.13 161.29) 2533 | ) 2534 | (stroke 2535 | (width 0) 2536 | (type default) 2537 | ) 2538 | (uuid "4b11cf96-55ea-426d-931a-546e267f1f31") 2539 | ) 2540 | (wire 2541 | (pts 2542 | (xy 78.74 109.22) (xy 95.25 109.22) 2543 | ) 2544 | (stroke 2545 | (width 0) 2546 | (type default) 2547 | ) 2548 | (uuid "4e3c45f4-4a75-4b20-9970-9133635e086c") 2549 | ) 2550 | (wire 2551 | (pts 2552 | (xy 95.25 74.93) (xy 115.57 74.93) 2553 | ) 2554 | (stroke 2555 | (width 0) 2556 | (type default) 2557 | ) 2558 | (uuid "528cdfb1-cea6-496f-9098-46ce0fdfe32a") 2559 | ) 2560 | (wire 2561 | (pts 2562 | (xy 115.57 111.76) (xy 115.57 109.22) 2563 | ) 2564 | (stroke 2565 | (width 0) 2566 | (type default) 2567 | ) 2568 | (uuid "5626dbf2-c719-4089-ae18-c83d2697bc27") 2569 | ) 2570 | (wire 2571 | (pts 2572 | (xy 172.72 90.17) (xy 182.88 90.17) 2573 | ) 2574 | (stroke 2575 | (width 0) 2576 | (type default) 2577 | ) 2578 | (uuid "56ef297b-7255-4873-97c8-eef62773cc45") 2579 | ) 2580 | (wire 2581 | (pts 2582 | (xy 95.25 74.93) (xy 95.25 91.44) 2583 | ) 2584 | (stroke 2585 | (width 0) 2586 | (type default) 2587 | ) 2588 | (uuid "58703718-0508-4e79-a8c3-1f49230a33c0") 2589 | ) 2590 | (wire 2591 | (pts 2592 | (xy 54.61 92.71) (xy 54.61 109.22) 2593 | ) 2594 | (stroke 2595 | (width 0) 2596 | (type default) 2597 | ) 2598 | (uuid "6205c5a7-ddd2-4c21-941d-81515b901d33") 2599 | ) 2600 | (wire 2601 | (pts 2602 | (xy 115.57 109.22) (xy 115.57 100.33) 2603 | ) 2604 | (stroke 2605 | (width 0) 2606 | (type default) 2607 | ) 2608 | (uuid "632a681c-cb23-462a-b4dc-6aff6ae601c1") 2609 | ) 2610 | (wire 2611 | (pts 2612 | (xy 139.7 109.22) (xy 152.4 109.22) 2613 | ) 2614 | (stroke 2615 | (width 0) 2616 | (type default) 2617 | ) 2618 | (uuid "658150a7-aba0-419a-b55a-f26f55dd21b6") 2619 | ) 2620 | (wire 2621 | (pts 2622 | (xy 152.4 109.22) (xy 152.4 107.95) 2623 | ) 2624 | (stroke 2625 | (width 0) 2626 | (type default) 2627 | ) 2628 | (uuid "685f7014-377f-42f1-b04d-9d5655b180e1") 2629 | ) 2630 | (wire 2631 | (pts 2632 | (xy 99.06 95.25) (xy 110.49 95.25) 2633 | ) 2634 | (stroke 2635 | (width 0) 2636 | (type default) 2637 | ) 2638 | (uuid "71ad9b4c-04b0-4790-bf0c-d31df62df0ee") 2639 | ) 2640 | (wire 2641 | (pts 2642 | (xy 54.61 90.17) (xy 62.23 90.17) 2643 | ) 2644 | (stroke 2645 | (width 0) 2646 | (type default) 2647 | ) 2648 | (uuid "73bd6574-bd8d-4753-b625-f3b24f4bab6b") 2649 | ) 2650 | (wire 2651 | (pts 2652 | (xy 78.74 100.33) (xy 78.74 109.22) 2653 | ) 2654 | (stroke 2655 | (width 0) 2656 | (type default) 2657 | ) 2658 | (uuid "747cc7a6-f3b9-47e5-96f3-51d01f9e48f0") 2659 | ) 2660 | (wire 2661 | (pts 2662 | (xy 78.74 78.74) (xy 78.74 74.93) 2663 | ) 2664 | (stroke 2665 | (width 0) 2666 | (type default) 2667 | ) 2668 | (uuid "7f423953-f434-489b-87d3-4a79a7a64786") 2669 | ) 2670 | (wire 2671 | (pts 2672 | (xy 137.16 92.71) (xy 139.7 92.71) 2673 | ) 2674 | (stroke 2675 | (width 0) 2676 | (type default) 2677 | ) 2678 | (uuid "86b498db-6fe7-44b9-8bc4-9cd4c426e5c0") 2679 | ) 2680 | (wire 2681 | (pts 2682 | (xy 152.4 95.25) (xy 152.4 100.33) 2683 | ) 2684 | (stroke 2685 | (width 0) 2686 | (type default) 2687 | ) 2688 | (uuid "8c7450bf-5050-4940-ba96-407cb7c5a8b4") 2689 | ) 2690 | (wire 2691 | (pts 2692 | (xy 115.57 74.93) (xy 115.57 85.09) 2693 | ) 2694 | (stroke 2695 | (width 0) 2696 | (type default) 2697 | ) 2698 | (uuid "8d62f406-cc03-4749-a91a-f0856752b41a") 2699 | ) 2700 | (wire 2701 | (pts 2702 | (xy 78.74 90.17) (xy 78.74 92.71) 2703 | ) 2704 | (stroke 2705 | (width 0) 2706 | (type default) 2707 | ) 2708 | (uuid "904fa651-daa6-4368-9d26-7e40ea0de147") 2709 | ) 2710 | (wire 2711 | (pts 2712 | (xy 139.7 92.71) (xy 139.7 95.25) 2713 | ) 2714 | (stroke 2715 | (width 0) 2716 | (type default) 2717 | ) 2718 | (uuid "92962a38-e1c0-4a28-9caf-2c1752e7f900") 2719 | ) 2720 | (wire 2721 | (pts 2722 | (xy 168.91 74.93) (xy 115.57 74.93) 2723 | ) 2724 | (stroke 2725 | (width 0) 2726 | (type default) 2727 | ) 2728 | (uuid "9e1aaec1-21f2-40fb-9ce5-15dd418bbe02") 2729 | ) 2730 | (wire 2731 | (pts 2732 | (xy 78.74 90.17) (xy 110.49 90.17) 2733 | ) 2734 | (stroke 2735 | (width 0) 2736 | (type default) 2737 | ) 2738 | (uuid "a1bed764-c83a-4c58-8a3c-a6b074ebab42") 2739 | ) 2740 | (wire 2741 | (pts 2742 | (xy 78.74 86.36) (xy 78.74 90.17) 2743 | ) 2744 | (stroke 2745 | (width 0) 2746 | (type default) 2747 | ) 2748 | (uuid "a24da528-817d-4704-8db2-b81924bacb08") 2749 | ) 2750 | (wire 2751 | (pts 2752 | (xy 149.86 156.21) (xy 154.94 156.21) 2753 | ) 2754 | (stroke 2755 | (width 0) 2756 | (type default) 2757 | ) 2758 | (uuid "a26e5c36-6f3b-42ed-9c83-27e82c75d8a4") 2759 | ) 2760 | (wire 2761 | (pts 2762 | (xy 115.57 109.22) (xy 139.7 109.22) 2763 | ) 2764 | (stroke 2765 | (width 0) 2766 | (type default) 2767 | ) 2768 | (uuid "b448f7f3-dfeb-4459-aa80-ecf7c009d89d") 2769 | ) 2770 | (wire 2771 | (pts 2772 | (xy 95.25 109.22) (xy 115.57 109.22) 2773 | ) 2774 | (stroke 2775 | (width 0) 2776 | (type default) 2777 | ) 2778 | (uuid "b76553c2-4fdb-4679-8317-1e51f5544d85") 2779 | ) 2780 | (wire 2781 | (pts 2782 | (xy 125.73 92.71) (xy 129.54 92.71) 2783 | ) 2784 | (stroke 2785 | (width 0) 2786 | (type default) 2787 | ) 2788 | (uuid "c54a85c6-02c5-4732-a674-760d8b5af43c") 2789 | ) 2790 | (wire 2791 | (pts 2792 | (xy 198.12 92.71) (xy 210.82 92.71) 2793 | ) 2794 | (stroke 2795 | (width 0) 2796 | (type default) 2797 | ) 2798 | (uuid "ccbf9131-870e-42e1-810d-9892012c040f") 2799 | ) 2800 | (wire 2801 | (pts 2802 | (xy 182.88 95.25) (xy 152.4 95.25) 2803 | ) 2804 | (stroke 2805 | (width 0) 2806 | (type default) 2807 | ) 2808 | (uuid "ced3ce61-9d87-4f6b-8826-db3a18654256") 2809 | ) 2810 | (wire 2811 | (pts 2812 | (xy 69.85 90.17) (xy 78.74 90.17) 2813 | ) 2814 | (stroke 2815 | (width 0) 2816 | (type default) 2817 | ) 2818 | (uuid "dba89cec-9f29-4f8d-bf7e-0f91257b7a07") 2819 | ) 2820 | (wire 2821 | (pts 2822 | (xy 95.25 99.06) (xy 95.25 109.22) 2823 | ) 2824 | (stroke 2825 | (width 0) 2826 | (type default) 2827 | ) 2828 | (uuid "e037f206-ae95-4ef4-96fb-b2a6633dc991") 2829 | ) 2830 | (wire 2831 | (pts 2832 | (xy 151.13 161.29) (xy 154.94 161.29) 2833 | ) 2834 | (stroke 2835 | (width 0) 2836 | (type default) 2837 | ) 2838 | (uuid "e1ac374c-5969-40de-b601-1ef7dfa67af8") 2839 | ) 2840 | (wire 2841 | (pts 2842 | (xy 168.91 93.98) (xy 168.91 109.22) 2843 | ) 2844 | (stroke 2845 | (width 0) 2846 | (type default) 2847 | ) 2848 | (uuid "e2e8ec52-fc38-4f47-ba67-0ce0e6e9f787") 2849 | ) 2850 | (wire 2851 | (pts 2852 | (xy 154.94 125.73) (xy 149.86 125.73) 2853 | ) 2854 | (stroke 2855 | (width 0) 2856 | (type default) 2857 | ) 2858 | (uuid "faf87335-6a21-4b4e-9e12-699cfd8bd57f") 2859 | ) 2860 | (global_label "TX" 2861 | (shape input) 2862 | (at 149.86 156.21 180) 2863 | (fields_autoplaced yes) 2864 | (effects 2865 | (font 2866 | (size 1.27 1.27) 2867 | ) 2868 | (justify right) 2869 | ) 2870 | (uuid "cfc51072-8c8e-4ae5-b36e-f68ccdd5e27a") 2871 | (property "Intersheetrefs" "${INTERSHEET_REFS}" 2872 | (at 144.6977 156.21 0) 2873 | (effects 2874 | (font 2875 | (size 1.27 1.27) 2876 | ) 2877 | (justify right) 2878 | (hide yes) 2879 | ) 2880 | ) 2881 | ) 2882 | (global_label "TX" 2883 | (shape input) 2884 | (at 210.82 92.71 0) 2885 | (fields_autoplaced yes) 2886 | (effects 2887 | (font 2888 | (size 1.27 1.27) 2889 | ) 2890 | (justify left) 2891 | ) 2892 | (uuid "d574341b-8750-44b2-9667-feb101ab5bf0") 2893 | (property "Intersheetrefs" "${INTERSHEET_REFS}" 2894 | (at 215.9823 92.71 0) 2895 | (effects 2896 | (font 2897 | (size 1.27 1.27) 2898 | ) 2899 | (justify left) 2900 | (hide yes) 2901 | ) 2902 | ) 2903 | ) 2904 | (symbol 2905 | (lib_id "power:GND") 2906 | (at 149.86 130.81 0) 2907 | (unit 1) 2908 | (exclude_from_sim no) 2909 | (in_bom yes) 2910 | (on_board yes) 2911 | (dnp no) 2912 | (fields_autoplaced yes) 2913 | (uuid "0217bdc7-dec1-44e2-a464-bf408da08c24") 2914 | (property "Reference" "#PWR04" 2915 | (at 149.86 137.16 0) 2916 | (effects 2917 | (font 2918 | (size 1.27 1.27) 2919 | ) 2920 | (hide yes) 2921 | ) 2922 | ) 2923 | (property "Value" "GND" 2924 | (at 149.86 135.89 0) 2925 | (effects 2926 | (font 2927 | (size 1.27 1.27) 2928 | ) 2929 | ) 2930 | ) 2931 | (property "Footprint" "" 2932 | (at 149.86 130.81 0) 2933 | (effects 2934 | (font 2935 | (size 1.27 1.27) 2936 | ) 2937 | (hide yes) 2938 | ) 2939 | ) 2940 | (property "Datasheet" "" 2941 | (at 149.86 130.81 0) 2942 | (effects 2943 | (font 2944 | (size 1.27 1.27) 2945 | ) 2946 | (hide yes) 2947 | ) 2948 | ) 2949 | (property "Description" "Power symbol creates a global label with name \"GND\" , ground" 2950 | (at 149.86 130.81 0) 2951 | (effects 2952 | (font 2953 | (size 1.27 1.27) 2954 | ) 2955 | (hide yes) 2956 | ) 2957 | ) 2958 | (pin "1" 2959 | (uuid "5f535334-c284-44f2-bdc2-b9c382f043a8") 2960 | ) 2961 | (instances 2962 | (project "demodulator" 2963 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 2964 | (reference "#PWR04") 2965 | (unit 1) 2966 | ) 2967 | ) 2968 | ) 2969 | ) 2970 | (symbol 2971 | (lib_id "Device:C") 2972 | (at 139.7 104.14 0) 2973 | (unit 1) 2974 | (exclude_from_sim no) 2975 | (in_bom yes) 2976 | (on_board yes) 2977 | (dnp no) 2978 | (fields_autoplaced yes) 2979 | (uuid "0d5d8f15-aa89-47c4-83e4-5df61e6e23a1") 2980 | (property "Reference" "C1" 2981 | (at 143.51 102.8699 0) 2982 | (effects 2983 | (font 2984 | (size 1.27 1.27) 2985 | ) 2986 | (justify left) 2987 | ) 2988 | ) 2989 | (property "Value" "0.01u" 2990 | (at 143.51 105.4099 0) 2991 | (effects 2992 | (font 2993 | (size 1.27 1.27) 2994 | ) 2995 | (justify left) 2996 | ) 2997 | ) 2998 | (property "Footprint" "Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder" 2999 | (at 140.6652 107.95 0) 3000 | (effects 3001 | (font 3002 | (size 1.27 1.27) 3003 | ) 3004 | (hide yes) 3005 | ) 3006 | ) 3007 | (property "Datasheet" "~" 3008 | (at 139.7 104.14 0) 3009 | (effects 3010 | (font 3011 | (size 1.27 1.27) 3012 | ) 3013 | (hide yes) 3014 | ) 3015 | ) 3016 | (property "Description" "Unpolarized capacitor" 3017 | (at 139.7 104.14 0) 3018 | (effects 3019 | (font 3020 | (size 1.27 1.27) 3021 | ) 3022 | (hide yes) 3023 | ) 3024 | ) 3025 | (pin "1" 3026 | (uuid "f7355519-a42f-4a8e-95c3-a4295e61de60") 3027 | ) 3028 | (pin "2" 3029 | (uuid "ed7c9f11-fa05-433f-a7c6-f107312e0ac8") 3030 | ) 3031 | (instances 3032 | (project "" 3033 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 3034 | (reference "C1") 3035 | (unit 1) 3036 | ) 3037 | ) 3038 | ) 3039 | ) 3040 | (symbol 3041 | (lib_id "power:+3.3V") 3042 | (at 149.86 124.46 0) 3043 | (unit 1) 3044 | (exclude_from_sim no) 3045 | (in_bom yes) 3046 | (on_board yes) 3047 | (dnp no) 3048 | (fields_autoplaced yes) 3049 | (uuid "0df7db36-a125-46fd-aaf2-f94ce08349f3") 3050 | (property "Reference" "#PWR02" 3051 | (at 149.86 128.27 0) 3052 | (effects 3053 | (font 3054 | (size 1.27 1.27) 3055 | ) 3056 | (hide yes) 3057 | ) 3058 | ) 3059 | (property "Value" "+3.3V" 3060 | (at 149.86 119.38 0) 3061 | (effects 3062 | (font 3063 | (size 1.27 1.27) 3064 | ) 3065 | ) 3066 | ) 3067 | (property "Footprint" "" 3068 | (at 149.86 124.46 0) 3069 | (effects 3070 | (font 3071 | (size 1.27 1.27) 3072 | ) 3073 | (hide yes) 3074 | ) 3075 | ) 3076 | (property "Datasheet" "" 3077 | (at 149.86 124.46 0) 3078 | (effects 3079 | (font 3080 | (size 1.27 1.27) 3081 | ) 3082 | (hide yes) 3083 | ) 3084 | ) 3085 | (property "Description" "Power symbol creates a global label with name \"+3.3V\"" 3086 | (at 149.86 124.46 0) 3087 | (effects 3088 | (font 3089 | (size 1.27 1.27) 3090 | ) 3091 | (hide yes) 3092 | ) 3093 | ) 3094 | (pin "1" 3095 | (uuid "9010cce7-429e-4221-a2cc-cd259e649ee4") 3096 | ) 3097 | (instances 3098 | (project "" 3099 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 3100 | (reference "#PWR02") 3101 | (unit 1) 3102 | ) 3103 | ) 3104 | ) 3105 | ) 3106 | (symbol 3107 | (lib_id "power:GND") 3108 | (at 76.2 158.75 0) 3109 | (unit 1) 3110 | (exclude_from_sim no) 3111 | (in_bom yes) 3112 | (on_board yes) 3113 | (dnp no) 3114 | (fields_autoplaced yes) 3115 | (uuid "10da906e-cb82-44ae-a104-b311b25dadf9") 3116 | (property "Reference" "#PWR09" 3117 | (at 76.2 165.1 0) 3118 | (effects 3119 | (font 3120 | (size 1.27 1.27) 3121 | ) 3122 | (hide yes) 3123 | ) 3124 | ) 3125 | (property "Value" "GND" 3126 | (at 76.2 163.83 0) 3127 | (effects 3128 | (font 3129 | (size 1.27 1.27) 3130 | ) 3131 | ) 3132 | ) 3133 | (property "Footprint" "" 3134 | (at 76.2 158.75 0) 3135 | (effects 3136 | (font 3137 | (size 1.27 1.27) 3138 | ) 3139 | (hide yes) 3140 | ) 3141 | ) 3142 | (property "Datasheet" "" 3143 | (at 76.2 158.75 0) 3144 | (effects 3145 | (font 3146 | (size 1.27 1.27) 3147 | ) 3148 | (hide yes) 3149 | ) 3150 | ) 3151 | (property "Description" "Power symbol creates a global label with name \"GND\" , ground" 3152 | (at 76.2 158.75 0) 3153 | (effects 3154 | (font 3155 | (size 1.27 1.27) 3156 | ) 3157 | (hide yes) 3158 | ) 3159 | ) 3160 | (pin "1" 3161 | (uuid "b65b96a4-e7c6-4163-aac4-9da138cf31c6") 3162 | ) 3163 | (instances 3164 | (project "demodulator" 3165 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 3166 | (reference "#PWR09") 3167 | (unit 1) 3168 | ) 3169 | ) 3170 | ) 3171 | ) 3172 | (symbol 3173 | (lib_id "Device:R") 3174 | (at 78.74 96.52 0) 3175 | (unit 1) 3176 | (exclude_from_sim no) 3177 | (in_bom yes) 3178 | (on_board yes) 3179 | (dnp no) 3180 | (fields_autoplaced yes) 3181 | (uuid "2520a7a4-1097-496a-bb70-0e5228df459d") 3182 | (property "Reference" "R3" 3183 | (at 81.28 95.2499 0) 3184 | (effects 3185 | (font 3186 | (size 1.27 1.27) 3187 | ) 3188 | (justify left) 3189 | ) 3190 | ) 3191 | (property "Value" "100k" 3192 | (at 81.28 97.7899 0) 3193 | (effects 3194 | (font 3195 | (size 1.27 1.27) 3196 | ) 3197 | (justify left) 3198 | ) 3199 | ) 3200 | (property "Footprint" "Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder" 3201 | (at 76.962 96.52 90) 3202 | (effects 3203 | (font 3204 | (size 1.27 1.27) 3205 | ) 3206 | (hide yes) 3207 | ) 3208 | ) 3209 | (property "Datasheet" "~" 3210 | (at 78.74 96.52 0) 3211 | (effects 3212 | (font 3213 | (size 1.27 1.27) 3214 | ) 3215 | (hide yes) 3216 | ) 3217 | ) 3218 | (property "Description" "Resistor" 3219 | (at 78.74 96.52 0) 3220 | (effects 3221 | (font 3222 | (size 1.27 1.27) 3223 | ) 3224 | (hide yes) 3225 | ) 3226 | ) 3227 | (pin "2" 3228 | (uuid "8b7bc41a-2103-4066-b42a-ae5ecbba7132") 3229 | ) 3230 | (pin "1" 3231 | (uuid "b7b1101f-e682-4181-84a5-f7e1437ef63f") 3232 | ) 3233 | (instances 3234 | (project "" 3235 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 3236 | (reference "R3") 3237 | (unit 1) 3238 | ) 3239 | ) 3240 | ) 3241 | ) 3242 | (symbol 3243 | (lib_id "Mechanical:MountingHole_Pad") 3244 | (at 67.31 156.21 0) 3245 | (unit 1) 3246 | (exclude_from_sim yes) 3247 | (in_bom no) 3248 | (on_board yes) 3249 | (dnp no) 3250 | (fields_autoplaced yes) 3251 | (uuid "2d7bd51f-489e-4ba4-a886-dbfcb3ef8a44") 3252 | (property "Reference" "H1" 3253 | (at 69.85 153.6699 0) 3254 | (effects 3255 | (font 3256 | (size 1.27 1.27) 3257 | ) 3258 | (justify left) 3259 | ) 3260 | ) 3261 | (property "Value" "MountingHole_Pad" 3262 | (at 69.85 156.2099 0) 3263 | (effects 3264 | (font 3265 | (size 1.27 1.27) 3266 | ) 3267 | (justify left) 3268 | ) 3269 | ) 3270 | (property "Footprint" "MountingHole:MountingHole_2.2mm_M2_ISO14580_Pad" 3271 | (at 67.31 156.21 0) 3272 | (effects 3273 | (font 3274 | (size 1.27 1.27) 3275 | ) 3276 | (hide yes) 3277 | ) 3278 | ) 3279 | (property "Datasheet" "~" 3280 | (at 67.31 156.21 0) 3281 | (effects 3282 | (font 3283 | (size 1.27 1.27) 3284 | ) 3285 | (hide yes) 3286 | ) 3287 | ) 3288 | (property "Description" "Mounting Hole with connection" 3289 | (at 67.31 156.21 0) 3290 | (effects 3291 | (font 3292 | (size 1.27 1.27) 3293 | ) 3294 | (hide yes) 3295 | ) 3296 | ) 3297 | (pin "1" 3298 | (uuid "7c87b90a-1f9b-42e8-b1f4-9af845e769a0") 3299 | ) 3300 | (instances 3301 | (project "" 3302 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 3303 | (reference "H1") 3304 | (unit 1) 3305 | ) 3306 | ) 3307 | ) 3308 | ) 3309 | (symbol 3310 | (lib_id "power:+3.3V") 3311 | (at 115.57 68.58 0) 3312 | (unit 1) 3313 | (exclude_from_sim no) 3314 | (in_bom yes) 3315 | (on_board yes) 3316 | (dnp no) 3317 | (fields_autoplaced yes) 3318 | (uuid "2dd39352-9d17-4d1b-8aef-a080aa88a0dc") 3319 | (property "Reference" "#PWR01" 3320 | (at 115.57 72.39 0) 3321 | (effects 3322 | (font 3323 | (size 1.27 1.27) 3324 | ) 3325 | (hide yes) 3326 | ) 3327 | ) 3328 | (property "Value" "+3.3V" 3329 | (at 115.57 63.5 0) 3330 | (effects 3331 | (font 3332 | (size 1.27 1.27) 3333 | ) 3334 | ) 3335 | ) 3336 | (property "Footprint" "" 3337 | (at 115.57 68.58 0) 3338 | (effects 3339 | (font 3340 | (size 1.27 1.27) 3341 | ) 3342 | (hide yes) 3343 | ) 3344 | ) 3345 | (property "Datasheet" "" 3346 | (at 115.57 68.58 0) 3347 | (effects 3348 | (font 3349 | (size 1.27 1.27) 3350 | ) 3351 | (hide yes) 3352 | ) 3353 | ) 3354 | (property "Description" "Power symbol creates a global label with name \"+3.3V\"" 3355 | (at 115.57 68.58 0) 3356 | (effects 3357 | (font 3358 | (size 1.27 1.27) 3359 | ) 3360 | (hide yes) 3361 | ) 3362 | ) 3363 | (pin "1" 3364 | (uuid "2dd7b2e2-c0cc-4f68-ac4f-225b4c024964") 3365 | ) 3366 | (instances 3367 | (project "" 3368 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 3369 | (reference "#PWR01") 3370 | (unit 1) 3371 | ) 3372 | ) 3373 | ) 3374 | ) 3375 | (symbol 3376 | (lib_id "Device:R_Potentiometer") 3377 | (at 95.25 95.25 0) 3378 | (unit 1) 3379 | (exclude_from_sim no) 3380 | (in_bom yes) 3381 | (on_board yes) 3382 | (dnp no) 3383 | (fields_autoplaced yes) 3384 | (uuid "3087feba-91e5-446c-a8be-20fd77e530de") 3385 | (property "Reference" "RV1" 3386 | (at 92.71 93.9799 0) 3387 | (effects 3388 | (font 3389 | (size 1.27 1.27) 3390 | ) 3391 | (justify right) 3392 | ) 3393 | ) 3394 | (property "Value" "10k" 3395 | (at 92.71 96.5199 0) 3396 | (effects 3397 | (font 3398 | (size 1.27 1.27) 3399 | ) 3400 | (justify right) 3401 | ) 3402 | ) 3403 | (property "Footprint" "Potentiometer_SMD:Potentiometer_Bourns_TC33X_Vertical" 3404 | (at 95.25 95.25 0) 3405 | (effects 3406 | (font 3407 | (size 1.27 1.27) 3408 | ) 3409 | (hide yes) 3410 | ) 3411 | ) 3412 | (property "Datasheet" "~" 3413 | (at 95.25 95.25 0) 3414 | (effects 3415 | (font 3416 | (size 1.27 1.27) 3417 | ) 3418 | (hide yes) 3419 | ) 3420 | ) 3421 | (property "Description" "Potentiometer" 3422 | (at 95.25 95.25 0) 3423 | (effects 3424 | (font 3425 | (size 1.27 1.27) 3426 | ) 3427 | (hide yes) 3428 | ) 3429 | ) 3430 | (pin "1" 3431 | (uuid "15d29409-79cc-410c-a931-f65fe665be03") 3432 | ) 3433 | (pin "3" 3434 | (uuid "091d3e6d-3324-4832-a4eb-6d05728b45f4") 3435 | ) 3436 | (pin "2" 3437 | (uuid "fb431966-9063-46f4-8cc9-2cd69f7b1cb0") 3438 | ) 3439 | (instances 3440 | (project "" 3441 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 3442 | (reference "RV1") 3443 | (unit 1) 3444 | ) 3445 | ) 3446 | ) 3447 | ) 3448 | (symbol 3449 | (lib_id "Connector_Generic:Conn_01x12") 3450 | (at 190.5 137.16 0) 3451 | (mirror y) 3452 | (unit 1) 3453 | (exclude_from_sim no) 3454 | (in_bom yes) 3455 | (on_board yes) 3456 | (dnp no) 3457 | (fields_autoplaced yes) 3458 | (uuid "427bedb1-2eab-47ef-ab8c-7a567da78b4e") 3459 | (property "Reference" "J5" 3460 | (at 190.5 118.11 0) 3461 | (effects 3462 | (font 3463 | (size 1.27 1.27) 3464 | ) 3465 | ) 3466 | ) 3467 | (property "Value" "Conn_01x12" 3468 | (at 190.5 120.65 0) 3469 | (effects 3470 | (font 3471 | (size 1.27 1.27) 3472 | ) 3473 | ) 3474 | ) 3475 | (property "Footprint" "Connector_PinSocket_2.54mm:PinSocket_1x12_P2.54mm_Vertical" 3476 | (at 190.5 137.16 0) 3477 | (effects 3478 | (font 3479 | (size 1.27 1.27) 3480 | ) 3481 | (hide yes) 3482 | ) 3483 | ) 3484 | (property "Datasheet" "~" 3485 | (at 190.5 137.16 0) 3486 | (effects 3487 | (font 3488 | (size 1.27 1.27) 3489 | ) 3490 | (hide yes) 3491 | ) 3492 | ) 3493 | (property "Description" "Generic connector, single row, 01x12, script generated (kicad-library-utils/schlib/autogen/connector/)" 3494 | (at 190.5 137.16 0) 3495 | (effects 3496 | (font 3497 | (size 1.27 1.27) 3498 | ) 3499 | (hide yes) 3500 | ) 3501 | ) 3502 | (pin "5" 3503 | (uuid "008f7395-85c0-4c46-b9e2-4f1167e1bdad") 3504 | ) 3505 | (pin "8" 3506 | (uuid "7071c7f5-dcb2-4573-ac24-ab92e614fd46") 3507 | ) 3508 | (pin "6" 3509 | (uuid "1d4992ec-c689-40d0-a7fe-7b821fcb0bba") 3510 | ) 3511 | (pin "9" 3512 | (uuid "4d840518-4bc0-4277-828a-db53bcedc851") 3513 | ) 3514 | (pin "4" 3515 | (uuid "9481d8f4-8b51-4dd6-826a-54939db1e74c") 3516 | ) 3517 | (pin "11" 3518 | (uuid "1e9e95a2-ec01-4626-b086-be1f18dad3d9") 3519 | ) 3520 | (pin "3" 3521 | (uuid "1c0fda43-8cde-49b2-9ad8-5d2dbb200e2b") 3522 | ) 3523 | (pin "7" 3524 | (uuid "9847c806-437f-44ac-8c15-c4bd49dcddb4") 3525 | ) 3526 | (pin "2" 3527 | (uuid "a92aa59d-f808-4231-9310-7efc83d38448") 3528 | ) 3529 | (pin "12" 3530 | (uuid "86619d07-cc08-408d-84fa-e0ca921fd98b") 3531 | ) 3532 | (pin "10" 3533 | (uuid "a85b5e04-0f22-4cad-8768-33ca79557341") 3534 | ) 3535 | (pin "1" 3536 | (uuid "628420a6-191e-4bfa-962e-c3026efe747a") 3537 | ) 3538 | (instances 3539 | (project "" 3540 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 3541 | (reference "J5") 3542 | (unit 1) 3543 | ) 3544 | ) 3545 | ) 3546 | ) 3547 | (symbol 3548 | (lib_id "power:GND") 3549 | (at 92.71 158.75 0) 3550 | (unit 1) 3551 | (exclude_from_sim no) 3552 | (in_bom yes) 3553 | (on_board yes) 3554 | (dnp no) 3555 | (fields_autoplaced yes) 3556 | (uuid "49b0bba7-3c1e-4551-b5a9-d711839cb0ab") 3557 | (property "Reference" "#PWR011" 3558 | (at 92.71 165.1 0) 3559 | (effects 3560 | (font 3561 | (size 1.27 1.27) 3562 | ) 3563 | (hide yes) 3564 | ) 3565 | ) 3566 | (property "Value" "GND" 3567 | (at 92.71 163.83 0) 3568 | (effects 3569 | (font 3570 | (size 1.27 1.27) 3571 | ) 3572 | ) 3573 | ) 3574 | (property "Footprint" "" 3575 | (at 92.71 158.75 0) 3576 | (effects 3577 | (font 3578 | (size 1.27 1.27) 3579 | ) 3580 | (hide yes) 3581 | ) 3582 | ) 3583 | (property "Datasheet" "" 3584 | (at 92.71 158.75 0) 3585 | (effects 3586 | (font 3587 | (size 1.27 1.27) 3588 | ) 3589 | (hide yes) 3590 | ) 3591 | ) 3592 | (property "Description" "Power symbol creates a global label with name \"GND\" , ground" 3593 | (at 92.71 158.75 0) 3594 | (effects 3595 | (font 3596 | (size 1.27 1.27) 3597 | ) 3598 | (hide yes) 3599 | ) 3600 | ) 3601 | (pin "1" 3602 | (uuid "3a47e832-f2b0-4753-9bcd-0efa0625a664") 3603 | ) 3604 | (instances 3605 | (project "demodulator" 3606 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 3607 | (reference "#PWR011") 3608 | (unit 1) 3609 | ) 3610 | ) 3611 | ) 3612 | ) 3613 | (symbol 3614 | (lib_id "components:MAX942") 3615 | (at 190.5 92.71 0) 3616 | (unit 2) 3617 | (exclude_from_sim no) 3618 | (in_bom yes) 3619 | (on_board yes) 3620 | (dnp no) 3621 | (fields_autoplaced yes) 3622 | (uuid "57c39c52-a691-4ee2-90f3-656b80c0e364") 3623 | (property "Reference" "U1" 3624 | (at 190.5 82.55 0) 3625 | (effects 3626 | (font 3627 | (size 1.27 1.27) 3628 | ) 3629 | ) 3630 | ) 3631 | (property "Value" "MAX942" 3632 | (at 190.5 85.09 0) 3633 | (effects 3634 | (font 3635 | (size 1.27 1.27) 3636 | ) 3637 | ) 3638 | ) 3639 | (property "Footprint" "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm" 3640 | (at 190.5 92.71 0) 3641 | (effects 3642 | (font 3643 | (size 1.27 1.27) 3644 | ) 3645 | (hide yes) 3646 | ) 3647 | ) 3648 | (property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm358.pdf" 3649 | (at 190.5 92.71 0) 3650 | (effects 3651 | (font 3652 | (size 1.27 1.27) 3653 | ) 3654 | (hide yes) 3655 | ) 3656 | ) 3657 | (property "Description" "Dual Operational Amplifiers, DIP-8/SOIC-8/TSSOP-8/VSSOP-8" 3658 | (at 190.5 92.71 0) 3659 | (effects 3660 | (font 3661 | (size 1.27 1.27) 3662 | ) 3663 | (hide yes) 3664 | ) 3665 | ) 3666 | (pin "1" 3667 | (uuid "d27124cd-16b2-45c3-b2b7-c0e712f77f47") 3668 | ) 3669 | (pin "5" 3670 | (uuid "9afc0c2c-35f2-4ef7-bbf3-e5f5530c7572") 3671 | ) 3672 | (pin "6" 3673 | (uuid "a5725901-11aa-45a3-8eef-4359c18bffd0") 3674 | ) 3675 | (pin "3" 3676 | (uuid "49066430-b0cf-43c9-9436-849cdd6f4f41") 3677 | ) 3678 | (pin "7" 3679 | (uuid "72136ffb-93f3-460a-abf5-58b57a991011") 3680 | ) 3681 | (pin "4" 3682 | (uuid "743bf28b-6d1e-4cbf-9aa5-e8d1bb2ce2c2") 3683 | ) 3684 | (pin "2" 3685 | (uuid "39df65e1-9687-4a00-9eef-d4d18ecedbb9") 3686 | ) 3687 | (pin "8" 3688 | (uuid "7668467c-19cc-4f75-b22b-729a1970944b") 3689 | ) 3690 | (instances 3691 | (project "" 3692 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 3693 | (reference "U1") 3694 | (unit 2) 3695 | ) 3696 | ) 3697 | ) 3698 | ) 3699 | (symbol 3700 | (lib_id "Device:R_Potentiometer") 3701 | (at 168.91 90.17 0) 3702 | (unit 1) 3703 | (exclude_from_sim no) 3704 | (in_bom yes) 3705 | (on_board yes) 3706 | (dnp no) 3707 | (fields_autoplaced yes) 3708 | (uuid "604b0d6c-3f95-463d-9169-01f17e376f1b") 3709 | (property "Reference" "RV2" 3710 | (at 166.37 88.8999 0) 3711 | (effects 3712 | (font 3713 | (size 1.27 1.27) 3714 | ) 3715 | (justify right) 3716 | ) 3717 | ) 3718 | (property "Value" "10k" 3719 | (at 166.37 91.4399 0) 3720 | (effects 3721 | (font 3722 | (size 1.27 1.27) 3723 | ) 3724 | (justify right) 3725 | ) 3726 | ) 3727 | (property "Footprint" "Potentiometer_SMD:Potentiometer_Bourns_TC33X_Vertical" 3728 | (at 168.91 90.17 0) 3729 | (effects 3730 | (font 3731 | (size 1.27 1.27) 3732 | ) 3733 | (hide yes) 3734 | ) 3735 | ) 3736 | (property "Datasheet" "~" 3737 | (at 168.91 90.17 0) 3738 | (effects 3739 | (font 3740 | (size 1.27 1.27) 3741 | ) 3742 | (hide yes) 3743 | ) 3744 | ) 3745 | (property "Description" "Potentiometer" 3746 | (at 168.91 90.17 0) 3747 | (effects 3748 | (font 3749 | (size 1.27 1.27) 3750 | ) 3751 | (hide yes) 3752 | ) 3753 | ) 3754 | (pin "1" 3755 | (uuid "15d29409-79cc-410c-a931-f65fe665be04") 3756 | ) 3757 | (pin "3" 3758 | (uuid "091d3e6d-3324-4832-a4eb-6d05728b45f5") 3759 | ) 3760 | (pin "2" 3761 | (uuid "fb431966-9063-46f4-8cc9-2cd69f7b1cb1") 3762 | ) 3763 | (instances 3764 | (project "" 3765 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 3766 | (reference "RV2") 3767 | (unit 1) 3768 | ) 3769 | ) 3770 | ) 3771 | ) 3772 | (symbol 3773 | (lib_id "Device:D") 3774 | (at 133.35 92.71 180) 3775 | (unit 1) 3776 | (exclude_from_sim no) 3777 | (in_bom yes) 3778 | (on_board yes) 3779 | (dnp no) 3780 | (fields_autoplaced yes) 3781 | (uuid "70214d4a-b2a6-49f1-a9f8-2c8df2a270b2") 3782 | (property "Reference" "D1" 3783 | (at 133.35 86.36 0) 3784 | (effects 3785 | (font 3786 | (size 1.27 1.27) 3787 | ) 3788 | ) 3789 | ) 3790 | (property "Value" "D" 3791 | (at 133.35 88.9 0) 3792 | (effects 3793 | (font 3794 | (size 1.27 1.27) 3795 | ) 3796 | ) 3797 | ) 3798 | (property "Footprint" "Diode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolder" 3799 | (at 133.35 92.71 0) 3800 | (effects 3801 | (font 3802 | (size 1.27 1.27) 3803 | ) 3804 | (hide yes) 3805 | ) 3806 | ) 3807 | (property "Datasheet" "~" 3808 | (at 133.35 92.71 0) 3809 | (effects 3810 | (font 3811 | (size 1.27 1.27) 3812 | ) 3813 | (hide yes) 3814 | ) 3815 | ) 3816 | (property "Description" "Diode" 3817 | (at 133.35 92.71 0) 3818 | (effects 3819 | (font 3820 | (size 1.27 1.27) 3821 | ) 3822 | (hide yes) 3823 | ) 3824 | ) 3825 | (property "Sim.Device" "D" 3826 | (at 133.35 92.71 0) 3827 | (effects 3828 | (font 3829 | (size 1.27 1.27) 3830 | ) 3831 | (hide yes) 3832 | ) 3833 | ) 3834 | (property "Sim.Pins" "1=K 2=A" 3835 | (at 133.35 92.71 0) 3836 | (effects 3837 | (font 3838 | (size 1.27 1.27) 3839 | ) 3840 | (hide yes) 3841 | ) 3842 | ) 3843 | (pin "2" 3844 | (uuid "fcafe4ea-3abb-4c21-837d-687a0903e446") 3845 | ) 3846 | (pin "1" 3847 | (uuid "a11e656d-8423-49d0-a59a-e316c2d74a7f") 3848 | ) 3849 | (instances 3850 | (project "" 3851 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 3852 | (reference "D1") 3853 | (unit 1) 3854 | ) 3855 | ) 3856 | ) 3857 | ) 3858 | (symbol 3859 | (lib_id "components:MAX942") 3860 | (at 118.11 92.71 0) 3861 | (unit 1) 3862 | (exclude_from_sim no) 3863 | (in_bom yes) 3864 | (on_board yes) 3865 | (dnp no) 3866 | (fields_autoplaced yes) 3867 | (uuid "72cfa08e-0313-4113-9364-8978d6b3043c") 3868 | (property "Reference" "U1" 3869 | (at 118.11 82.55 0) 3870 | (effects 3871 | (font 3872 | (size 1.27 1.27) 3873 | ) 3874 | ) 3875 | ) 3876 | (property "Value" "MAX942" 3877 | (at 118.11 85.09 0) 3878 | (effects 3879 | (font 3880 | (size 1.27 1.27) 3881 | ) 3882 | ) 3883 | ) 3884 | (property "Footprint" "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm" 3885 | (at 118.11 92.71 0) 3886 | (effects 3887 | (font 3888 | (size 1.27 1.27) 3889 | ) 3890 | (hide yes) 3891 | ) 3892 | ) 3893 | (property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm358.pdf" 3894 | (at 118.11 92.71 0) 3895 | (effects 3896 | (font 3897 | (size 1.27 1.27) 3898 | ) 3899 | (hide yes) 3900 | ) 3901 | ) 3902 | (property "Description" "Dual Operational Amplifiers, DIP-8/SOIC-8/TSSOP-8/VSSOP-8" 3903 | (at 118.11 92.71 0) 3904 | (effects 3905 | (font 3906 | (size 1.27 1.27) 3907 | ) 3908 | (hide yes) 3909 | ) 3910 | ) 3911 | (pin "1" 3912 | (uuid "d27124cd-16b2-45c3-b2b7-c0e712f77f47") 3913 | ) 3914 | (pin "5" 3915 | (uuid "9afc0c2c-35f2-4ef7-bbf3-e5f5530c7572") 3916 | ) 3917 | (pin "6" 3918 | (uuid "a5725901-11aa-45a3-8eef-4359c18bffd0") 3919 | ) 3920 | (pin "3" 3921 | (uuid "49066430-b0cf-43c9-9436-849cdd6f4f41") 3922 | ) 3923 | (pin "7" 3924 | (uuid "72136ffb-93f3-460a-abf5-58b57a991011") 3925 | ) 3926 | (pin "4" 3927 | (uuid "743bf28b-6d1e-4cbf-9aa5-e8d1bb2ce2c2") 3928 | ) 3929 | (pin "2" 3930 | (uuid "39df65e1-9687-4a00-9eef-d4d18ecedbb9") 3931 | ) 3932 | (pin "8" 3933 | (uuid "7668467c-19cc-4f75-b22b-729a1970944b") 3934 | ) 3935 | (instances 3936 | (project "" 3937 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 3938 | (reference "U1") 3939 | (unit 1) 3940 | ) 3941 | ) 3942 | ) 3943 | ) 3944 | (symbol 3945 | (lib_id "Connector_Generic:Conn_01x02") 3946 | (at 49.53 90.17 0) 3947 | (mirror y) 3948 | (unit 1) 3949 | (exclude_from_sim no) 3950 | (in_bom yes) 3951 | (on_board yes) 3952 | (dnp no) 3953 | (fields_autoplaced yes) 3954 | (uuid "7e9dee55-e4b2-41a6-8192-ac64bd328078") 3955 | (property "Reference" "J1" 3956 | (at 49.53 83.82 0) 3957 | (effects 3958 | (font 3959 | (size 1.27 1.27) 3960 | ) 3961 | ) 3962 | ) 3963 | (property "Value" "Conn_01x02" 3964 | (at 49.53 86.36 0) 3965 | (effects 3966 | (font 3967 | (size 1.27 1.27) 3968 | ) 3969 | ) 3970 | ) 3971 | (property "Footprint" "Connector_Samtec_HPM_THT:Samtec_HPM-02-05-x-S_Straight_1x02_Pitch5.08mm" 3972 | (at 49.53 90.17 0) 3973 | (effects 3974 | (font 3975 | (size 1.27 1.27) 3976 | ) 3977 | (hide yes) 3978 | ) 3979 | ) 3980 | (property "Datasheet" "~" 3981 | (at 49.53 90.17 0) 3982 | (effects 3983 | (font 3984 | (size 1.27 1.27) 3985 | ) 3986 | (hide yes) 3987 | ) 3988 | ) 3989 | (property "Description" "Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)" 3990 | (at 49.53 90.17 0) 3991 | (effects 3992 | (font 3993 | (size 1.27 1.27) 3994 | ) 3995 | (hide yes) 3996 | ) 3997 | ) 3998 | (pin "2" 3999 | (uuid "1b8ca434-4b43-4bbb-8223-1f0e12832823") 4000 | ) 4001 | (pin "1" 4002 | (uuid "bec8f524-deb7-4948-89ec-254f3b8930d1") 4003 | ) 4004 | (instances 4005 | (project "" 4006 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 4007 | (reference "J1") 4008 | (unit 1) 4009 | ) 4010 | ) 4011 | ) 4012 | ) 4013 | (symbol 4014 | (lib_id "Mechanical:MountingHole_Pad") 4015 | (at 92.71 156.21 0) 4016 | (unit 1) 4017 | (exclude_from_sim yes) 4018 | (in_bom no) 4019 | (on_board yes) 4020 | (dnp no) 4021 | (fields_autoplaced yes) 4022 | (uuid "88b51e50-ba5c-4b65-b523-513b0ee37b29") 4023 | (property "Reference" "H4" 4024 | (at 95.25 153.6699 0) 4025 | (effects 4026 | (font 4027 | (size 1.27 1.27) 4028 | ) 4029 | (justify left) 4030 | ) 4031 | ) 4032 | (property "Value" "MountingHole_Pad" 4033 | (at 95.25 156.2099 0) 4034 | (effects 4035 | (font 4036 | (size 1.27 1.27) 4037 | ) 4038 | (justify left) 4039 | ) 4040 | ) 4041 | (property "Footprint" "MountingHole:MountingHole_2.2mm_M2_ISO14580_Pad" 4042 | (at 92.71 156.21 0) 4043 | (effects 4044 | (font 4045 | (size 1.27 1.27) 4046 | ) 4047 | (hide yes) 4048 | ) 4049 | ) 4050 | (property "Datasheet" "~" 4051 | (at 92.71 156.21 0) 4052 | (effects 4053 | (font 4054 | (size 1.27 1.27) 4055 | ) 4056 | (hide yes) 4057 | ) 4058 | ) 4059 | (property "Description" "Mounting Hole with connection" 4060 | (at 92.71 156.21 0) 4061 | (effects 4062 | (font 4063 | (size 1.27 1.27) 4064 | ) 4065 | (hide yes) 4066 | ) 4067 | ) 4068 | (pin "1" 4069 | (uuid "fc46e87a-36c9-4521-b25a-736ee38a2470") 4070 | ) 4071 | (instances 4072 | (project "demodulator" 4073 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 4074 | (reference "H4") 4075 | (unit 1) 4076 | ) 4077 | ) 4078 | ) 4079 | ) 4080 | (symbol 4081 | (lib_id "power:GND") 4082 | (at 67.31 158.75 0) 4083 | (unit 1) 4084 | (exclude_from_sim no) 4085 | (in_bom yes) 4086 | (on_board yes) 4087 | (dnp no) 4088 | (fields_autoplaced yes) 4089 | (uuid "9d6d5fbd-3b3f-4ccb-8c68-1844feeb9b28") 4090 | (property "Reference" "#PWR08" 4091 | (at 67.31 165.1 0) 4092 | (effects 4093 | (font 4094 | (size 1.27 1.27) 4095 | ) 4096 | (hide yes) 4097 | ) 4098 | ) 4099 | (property "Value" "GND" 4100 | (at 67.31 163.83 0) 4101 | (effects 4102 | (font 4103 | (size 1.27 1.27) 4104 | ) 4105 | ) 4106 | ) 4107 | (property "Footprint" "" 4108 | (at 67.31 158.75 0) 4109 | (effects 4110 | (font 4111 | (size 1.27 1.27) 4112 | ) 4113 | (hide yes) 4114 | ) 4115 | ) 4116 | (property "Datasheet" "" 4117 | (at 67.31 158.75 0) 4118 | (effects 4119 | (font 4120 | (size 1.27 1.27) 4121 | ) 4122 | (hide yes) 4123 | ) 4124 | ) 4125 | (property "Description" "Power symbol creates a global label with name \"GND\" , ground" 4126 | (at 67.31 158.75 0) 4127 | (effects 4128 | (font 4129 | (size 1.27 1.27) 4130 | ) 4131 | (hide yes) 4132 | ) 4133 | ) 4134 | (pin "1" 4135 | (uuid "e9b72709-57a3-4cb2-9fb9-bc8f417544f4") 4136 | ) 4137 | (instances 4138 | (project "" 4139 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 4140 | (reference "#PWR08") 4141 | (unit 1) 4142 | ) 4143 | ) 4144 | ) 4145 | ) 4146 | (symbol 4147 | (lib_id "Device:R") 4148 | (at 78.74 82.55 0) 4149 | (unit 1) 4150 | (exclude_from_sim no) 4151 | (in_bom yes) 4152 | (on_board yes) 4153 | (dnp no) 4154 | (fields_autoplaced yes) 4155 | (uuid "a5b69a3d-2df9-4b7e-bdc4-89ba08511812") 4156 | (property "Reference" "R2" 4157 | (at 81.28 81.2799 0) 4158 | (effects 4159 | (font 4160 | (size 1.27 1.27) 4161 | ) 4162 | (justify left) 4163 | ) 4164 | ) 4165 | (property "Value" "100k" 4166 | (at 81.28 83.8199 0) 4167 | (effects 4168 | (font 4169 | (size 1.27 1.27) 4170 | ) 4171 | (justify left) 4172 | ) 4173 | ) 4174 | (property "Footprint" "Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder" 4175 | (at 76.962 82.55 90) 4176 | (effects 4177 | (font 4178 | (size 1.27 1.27) 4179 | ) 4180 | (hide yes) 4181 | ) 4182 | ) 4183 | (property "Datasheet" "~" 4184 | (at 78.74 82.55 0) 4185 | (effects 4186 | (font 4187 | (size 1.27 1.27) 4188 | ) 4189 | (hide yes) 4190 | ) 4191 | ) 4192 | (property "Description" "Resistor" 4193 | (at 78.74 82.55 0) 4194 | (effects 4195 | (font 4196 | (size 1.27 1.27) 4197 | ) 4198 | (hide yes) 4199 | ) 4200 | ) 4201 | (pin "2" 4202 | (uuid "ebaffd78-b8eb-47b8-b028-366a5615b200") 4203 | ) 4204 | (pin "1" 4205 | (uuid "cb364f5d-6b9a-4ff8-b072-f3f1b669093e") 4206 | ) 4207 | (instances 4208 | (project "" 4209 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 4210 | (reference "R2") 4211 | (unit 1) 4212 | ) 4213 | ) 4214 | ) 4215 | ) 4216 | (symbol 4217 | (lib_id "Connector_Generic:Conn_01x16") 4218 | (at 160.02 140.97 0) 4219 | (unit 1) 4220 | (exclude_from_sim no) 4221 | (in_bom yes) 4222 | (on_board yes) 4223 | (dnp no) 4224 | (fields_autoplaced yes) 4225 | (uuid "c187c030-2c76-4e15-9660-2cfe91bc1652") 4226 | (property "Reference" "J4" 4227 | (at 162.56 140.9699 0) 4228 | (effects 4229 | (font 4230 | (size 1.27 1.27) 4231 | ) 4232 | (justify left) 4233 | ) 4234 | ) 4235 | (property "Value" "Conn_01x16" 4236 | (at 162.56 143.5099 0) 4237 | (effects 4238 | (font 4239 | (size 1.27 1.27) 4240 | ) 4241 | (justify left) 4242 | ) 4243 | ) 4244 | (property "Footprint" "Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical" 4245 | (at 160.02 140.97 0) 4246 | (effects 4247 | (font 4248 | (size 1.27 1.27) 4249 | ) 4250 | (hide yes) 4251 | ) 4252 | ) 4253 | (property "Datasheet" "~" 4254 | (at 160.02 140.97 0) 4255 | (effects 4256 | (font 4257 | (size 1.27 1.27) 4258 | ) 4259 | (hide yes) 4260 | ) 4261 | ) 4262 | (property "Description" "Generic connector, single row, 01x16, script generated (kicad-library-utils/schlib/autogen/connector/)" 4263 | (at 160.02 140.97 0) 4264 | (effects 4265 | (font 4266 | (size 1.27 1.27) 4267 | ) 4268 | (hide yes) 4269 | ) 4270 | ) 4271 | (pin "5" 4272 | (uuid "4c0b0f92-d24a-4edc-8e5f-41925eb503ce") 4273 | ) 4274 | (pin "6" 4275 | (uuid "88eff253-eb20-44da-a6f6-64060a4dde68") 4276 | ) 4277 | (pin "2" 4278 | (uuid "d18340e5-6a67-4dd8-8513-5eb6e0f31be8") 4279 | ) 4280 | (pin "12" 4281 | (uuid "8c5ff122-cf20-469f-a693-515620b4cdac") 4282 | ) 4283 | (pin "11" 4284 | (uuid "19998554-69ba-4966-8b31-15c35720a532") 4285 | ) 4286 | (pin "10" 4287 | (uuid "a3f45712-b356-484a-9891-930676acd91c") 4288 | ) 4289 | (pin "4" 4290 | (uuid "d7f63269-5dd2-4d26-acd4-1186362958c6") 4291 | ) 4292 | (pin "7" 4293 | (uuid "6a62c642-d10d-45ac-8ded-d1d2025b7fb6") 4294 | ) 4295 | (pin "13" 4296 | (uuid "1eceecd6-849f-4468-a230-9411a3f655d5") 4297 | ) 4298 | (pin "9" 4299 | (uuid "70b1dda1-a239-4a5f-8bcd-47039d91d150") 4300 | ) 4301 | (pin "14" 4302 | (uuid "e747964f-f19b-4778-a44e-66f38e5491ca") 4303 | ) 4304 | (pin "15" 4305 | (uuid "e53a0c05-81c3-4d4d-826c-1d76a36175b6") 4306 | ) 4307 | (pin "3" 4308 | (uuid "6c38e950-af04-4dd3-92e6-026a6ce6917b") 4309 | ) 4310 | (pin "8" 4311 | (uuid "5277dd08-6f39-484a-a250-48500a34f9f3") 4312 | ) 4313 | (pin "1" 4314 | (uuid "2cd931df-212c-446f-90f6-1b2a96e9c620") 4315 | ) 4316 | (pin "16" 4317 | (uuid "607c099f-690f-46bd-a726-f48ba4530141") 4318 | ) 4319 | (instances 4320 | (project "" 4321 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 4322 | (reference "J4") 4323 | (unit 1) 4324 | ) 4325 | ) 4326 | ) 4327 | ) 4328 | (symbol 4329 | (lib_id "power:GND") 4330 | (at 151.13 163.83 0) 4331 | (unit 1) 4332 | (exclude_from_sim no) 4333 | (in_bom yes) 4334 | (on_board yes) 4335 | (dnp no) 4336 | (fields_autoplaced yes) 4337 | (uuid "ce799c7c-3ecc-4a99-8f13-416081899b58") 4338 | (property "Reference" "#PWR05" 4339 | (at 151.13 170.18 0) 4340 | (effects 4341 | (font 4342 | (size 1.27 1.27) 4343 | ) 4344 | (hide yes) 4345 | ) 4346 | ) 4347 | (property "Value" "GND" 4348 | (at 151.13 168.91 0) 4349 | (effects 4350 | (font 4351 | (size 1.27 1.27) 4352 | ) 4353 | ) 4354 | ) 4355 | (property "Footprint" "" 4356 | (at 151.13 163.83 0) 4357 | (effects 4358 | (font 4359 | (size 1.27 1.27) 4360 | ) 4361 | (hide yes) 4362 | ) 4363 | ) 4364 | (property "Datasheet" "" 4365 | (at 151.13 163.83 0) 4366 | (effects 4367 | (font 4368 | (size 1.27 1.27) 4369 | ) 4370 | (hide yes) 4371 | ) 4372 | ) 4373 | (property "Description" "Power symbol creates a global label with name \"GND\" , ground" 4374 | (at 151.13 163.83 0) 4375 | (effects 4376 | (font 4377 | (size 1.27 1.27) 4378 | ) 4379 | (hide yes) 4380 | ) 4381 | ) 4382 | (pin "1" 4383 | (uuid "79c227da-332b-47aa-a8df-cf27334cb250") 4384 | ) 4385 | (instances 4386 | (project "demodulator" 4387 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 4388 | (reference "#PWR05") 4389 | (unit 1) 4390 | ) 4391 | ) 4392 | ) 4393 | ) 4394 | (symbol 4395 | (lib_id "Device:R") 4396 | (at 152.4 104.14 0) 4397 | (unit 1) 4398 | (exclude_from_sim no) 4399 | (in_bom yes) 4400 | (on_board yes) 4401 | (dnp no) 4402 | (fields_autoplaced yes) 4403 | (uuid "d9eef807-577b-475b-a29e-f852a9b1af51") 4404 | (property "Reference" "R1" 4405 | (at 154.94 102.8699 0) 4406 | (effects 4407 | (font 4408 | (size 1.27 1.27) 4409 | ) 4410 | (justify left) 4411 | ) 4412 | ) 4413 | (property "Value" "330" 4414 | (at 154.94 105.4099 0) 4415 | (effects 4416 | (font 4417 | (size 1.27 1.27) 4418 | ) 4419 | (justify left) 4420 | ) 4421 | ) 4422 | (property "Footprint" "Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder" 4423 | (at 150.622 104.14 90) 4424 | (effects 4425 | (font 4426 | (size 1.27 1.27) 4427 | ) 4428 | (hide yes) 4429 | ) 4430 | ) 4431 | (property "Datasheet" "~" 4432 | (at 152.4 104.14 0) 4433 | (effects 4434 | (font 4435 | (size 1.27 1.27) 4436 | ) 4437 | (hide yes) 4438 | ) 4439 | ) 4440 | (property "Description" "Resistor" 4441 | (at 152.4 104.14 0) 4442 | (effects 4443 | (font 4444 | (size 1.27 1.27) 4445 | ) 4446 | (hide yes) 4447 | ) 4448 | ) 4449 | (pin "1" 4450 | (uuid "38bfb174-41ed-41af-967c-5d201ec8b665") 4451 | ) 4452 | (pin "2" 4453 | (uuid "dbc38949-750a-46e2-80b9-5020d25bf445") 4454 | ) 4455 | (instances 4456 | (project "" 4457 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 4458 | (reference "R1") 4459 | (unit 1) 4460 | ) 4461 | ) 4462 | ) 4463 | ) 4464 | (symbol 4465 | (lib_id "components:MAX942") 4466 | (at 118.11 92.71 0) 4467 | (unit 3) 4468 | (exclude_from_sim no) 4469 | (in_bom yes) 4470 | (on_board yes) 4471 | (dnp no) 4472 | (fields_autoplaced yes) 4473 | (uuid "dde7db08-f4e1-4ddc-a0e9-36d200b5c62d") 4474 | (property "Reference" "U1" 4475 | (at 116.84 91.4399 0) 4476 | (effects 4477 | (font 4478 | (size 1.27 1.27) 4479 | ) 4480 | (justify left) 4481 | ) 4482 | ) 4483 | (property "Value" "MAX942" 4484 | (at 116.84 93.9799 0) 4485 | (effects 4486 | (font 4487 | (size 1.27 1.27) 4488 | ) 4489 | (justify left) 4490 | ) 4491 | ) 4492 | (property "Footprint" "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm" 4493 | (at 118.11 92.71 0) 4494 | (effects 4495 | (font 4496 | (size 1.27 1.27) 4497 | ) 4498 | (hide yes) 4499 | ) 4500 | ) 4501 | (property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm358.pdf" 4502 | (at 118.11 92.71 0) 4503 | (effects 4504 | (font 4505 | (size 1.27 1.27) 4506 | ) 4507 | (hide yes) 4508 | ) 4509 | ) 4510 | (property "Description" "Dual Operational Amplifiers, DIP-8/SOIC-8/TSSOP-8/VSSOP-8" 4511 | (at 118.11 92.71 0) 4512 | (effects 4513 | (font 4514 | (size 1.27 1.27) 4515 | ) 4516 | (hide yes) 4517 | ) 4518 | ) 4519 | (pin "1" 4520 | (uuid "d27124cd-16b2-45c3-b2b7-c0e712f77f47") 4521 | ) 4522 | (pin "5" 4523 | (uuid "9afc0c2c-35f2-4ef7-bbf3-e5f5530c7572") 4524 | ) 4525 | (pin "6" 4526 | (uuid "a5725901-11aa-45a3-8eef-4359c18bffd0") 4527 | ) 4528 | (pin "3" 4529 | (uuid "49066430-b0cf-43c9-9436-849cdd6f4f41") 4530 | ) 4531 | (pin "7" 4532 | (uuid "72136ffb-93f3-460a-abf5-58b57a991011") 4533 | ) 4534 | (pin "4" 4535 | (uuid "743bf28b-6d1e-4cbf-9aa5-e8d1bb2ce2c2") 4536 | ) 4537 | (pin "2" 4538 | (uuid "39df65e1-9687-4a00-9eef-d4d18ecedbb9") 4539 | ) 4540 | (pin "8" 4541 | (uuid "7668467c-19cc-4f75-b22b-729a1970944b") 4542 | ) 4543 | (instances 4544 | (project "" 4545 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 4546 | (reference "U1") 4547 | (unit 3) 4548 | ) 4549 | ) 4550 | ) 4551 | ) 4552 | (symbol 4553 | (lib_id "Device:C") 4554 | (at 66.04 90.17 90) 4555 | (unit 1) 4556 | (exclude_from_sim no) 4557 | (in_bom yes) 4558 | (on_board yes) 4559 | (dnp no) 4560 | (fields_autoplaced yes) 4561 | (uuid "de48a791-8006-44b8-a1aa-0a004fd925ed") 4562 | (property "Reference" "C2" 4563 | (at 66.04 82.55 90) 4564 | (effects 4565 | (font 4566 | (size 1.27 1.27) 4567 | ) 4568 | ) 4569 | ) 4570 | (property "Value" "1u" 4571 | (at 66.04 85.09 90) 4572 | (effects 4573 | (font 4574 | (size 1.27 1.27) 4575 | ) 4576 | ) 4577 | ) 4578 | (property "Footprint" "Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder" 4579 | (at 69.85 89.2048 0) 4580 | (effects 4581 | (font 4582 | (size 1.27 1.27) 4583 | ) 4584 | (hide yes) 4585 | ) 4586 | ) 4587 | (property "Datasheet" "~" 4588 | (at 66.04 90.17 0) 4589 | (effects 4590 | (font 4591 | (size 1.27 1.27) 4592 | ) 4593 | (hide yes) 4594 | ) 4595 | ) 4596 | (property "Description" "Unpolarized capacitor" 4597 | (at 66.04 90.17 0) 4598 | (effects 4599 | (font 4600 | (size 1.27 1.27) 4601 | ) 4602 | (hide yes) 4603 | ) 4604 | ) 4605 | (pin "2" 4606 | (uuid "ac50cfed-a8a0-47b1-a6cd-b2e6e8962af7") 4607 | ) 4608 | (pin "1" 4609 | (uuid "2e5ccb01-4409-4225-a872-a4e568528f96") 4610 | ) 4611 | (instances 4612 | (project "" 4613 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 4614 | (reference "C2") 4615 | (unit 1) 4616 | ) 4617 | ) 4618 | ) 4619 | ) 4620 | (symbol 4621 | (lib_id "Mechanical:MountingHole_Pad") 4622 | (at 76.2 156.21 0) 4623 | (unit 1) 4624 | (exclude_from_sim yes) 4625 | (in_bom no) 4626 | (on_board yes) 4627 | (dnp no) 4628 | (fields_autoplaced yes) 4629 | (uuid "dfd1a278-06b4-4152-a012-21c1a66e7133") 4630 | (property "Reference" "H2" 4631 | (at 78.74 153.6699 0) 4632 | (effects 4633 | (font 4634 | (size 1.27 1.27) 4635 | ) 4636 | (justify left) 4637 | ) 4638 | ) 4639 | (property "Value" "MountingHole_Pad" 4640 | (at 78.74 156.2099 0) 4641 | (effects 4642 | (font 4643 | (size 1.27 1.27) 4644 | ) 4645 | (justify left) 4646 | ) 4647 | ) 4648 | (property "Footprint" "MountingHole:MountingHole_2.2mm_M2_ISO14580_Pad" 4649 | (at 76.2 156.21 0) 4650 | (effects 4651 | (font 4652 | (size 1.27 1.27) 4653 | ) 4654 | (hide yes) 4655 | ) 4656 | ) 4657 | (property "Datasheet" "~" 4658 | (at 76.2 156.21 0) 4659 | (effects 4660 | (font 4661 | (size 1.27 1.27) 4662 | ) 4663 | (hide yes) 4664 | ) 4665 | ) 4666 | (property "Description" "Mounting Hole with connection" 4667 | (at 76.2 156.21 0) 4668 | (effects 4669 | (font 4670 | (size 1.27 1.27) 4671 | ) 4672 | (hide yes) 4673 | ) 4674 | ) 4675 | (pin "1" 4676 | (uuid "13a590ea-5c04-4112-b328-213ecfd4c259") 4677 | ) 4678 | (instances 4679 | (project "demodulator" 4680 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 4681 | (reference "H2") 4682 | (unit 1) 4683 | ) 4684 | ) 4685 | ) 4686 | ) 4687 | (symbol 4688 | (lib_id "power:GND") 4689 | (at 113.03 135.89 0) 4690 | (unit 1) 4691 | (exclude_from_sim no) 4692 | (in_bom yes) 4693 | (on_board yes) 4694 | (dnp no) 4695 | (fields_autoplaced yes) 4696 | (uuid "e29a996e-8b38-4f24-9272-a9421e72769e") 4697 | (property "Reference" "#PWR07" 4698 | (at 113.03 142.24 0) 4699 | (effects 4700 | (font 4701 | (size 1.27 1.27) 4702 | ) 4703 | (hide yes) 4704 | ) 4705 | ) 4706 | (property "Value" "GND" 4707 | (at 113.03 140.97 0) 4708 | (effects 4709 | (font 4710 | (size 1.27 1.27) 4711 | ) 4712 | ) 4713 | ) 4714 | (property "Footprint" "" 4715 | (at 113.03 135.89 0) 4716 | (effects 4717 | (font 4718 | (size 1.27 1.27) 4719 | ) 4720 | (hide yes) 4721 | ) 4722 | ) 4723 | (property "Datasheet" "" 4724 | (at 113.03 135.89 0) 4725 | (effects 4726 | (font 4727 | (size 1.27 1.27) 4728 | ) 4729 | (hide yes) 4730 | ) 4731 | ) 4732 | (property "Description" "Power symbol creates a global label with name \"GND\" , ground" 4733 | (at 113.03 135.89 0) 4734 | (effects 4735 | (font 4736 | (size 1.27 1.27) 4737 | ) 4738 | (hide yes) 4739 | ) 4740 | ) 4741 | (pin "1" 4742 | (uuid "f33da1c4-47a1-4d73-90e3-fad9669c2529") 4743 | ) 4744 | (instances 4745 | (project "" 4746 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 4747 | (reference "#PWR07") 4748 | (unit 1) 4749 | ) 4750 | ) 4751 | ) 4752 | ) 4753 | (symbol 4754 | (lib_id "power:+3.3V") 4755 | (at 113.03 128.27 0) 4756 | (unit 1) 4757 | (exclude_from_sim no) 4758 | (in_bom yes) 4759 | (on_board yes) 4760 | (dnp no) 4761 | (fields_autoplaced yes) 4762 | (uuid "eb66d8c9-1b8f-45da-87e9-6200474f67a3") 4763 | (property "Reference" "#PWR06" 4764 | (at 113.03 132.08 0) 4765 | (effects 4766 | (font 4767 | (size 1.27 1.27) 4768 | ) 4769 | (hide yes) 4770 | ) 4771 | ) 4772 | (property "Value" "+3.3V" 4773 | (at 113.03 123.19 0) 4774 | (effects 4775 | (font 4776 | (size 1.27 1.27) 4777 | ) 4778 | ) 4779 | ) 4780 | (property "Footprint" "" 4781 | (at 113.03 128.27 0) 4782 | (effects 4783 | (font 4784 | (size 1.27 1.27) 4785 | ) 4786 | (hide yes) 4787 | ) 4788 | ) 4789 | (property "Datasheet" "" 4790 | (at 113.03 128.27 0) 4791 | (effects 4792 | (font 4793 | (size 1.27 1.27) 4794 | ) 4795 | (hide yes) 4796 | ) 4797 | ) 4798 | (property "Description" "Power symbol creates a global label with name \"+3.3V\"" 4799 | (at 113.03 128.27 0) 4800 | (effects 4801 | (font 4802 | (size 1.27 1.27) 4803 | ) 4804 | (hide yes) 4805 | ) 4806 | ) 4807 | (pin "1" 4808 | (uuid "3cc92ba2-99ed-435b-b295-7ac6cee9ca9d") 4809 | ) 4810 | (instances 4811 | (project "" 4812 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 4813 | (reference "#PWR06") 4814 | (unit 1) 4815 | ) 4816 | ) 4817 | ) 4818 | ) 4819 | (symbol 4820 | (lib_id "Mechanical:MountingHole_Pad") 4821 | (at 85.09 156.21 0) 4822 | (unit 1) 4823 | (exclude_from_sim yes) 4824 | (in_bom no) 4825 | (on_board yes) 4826 | (dnp no) 4827 | (fields_autoplaced yes) 4828 | (uuid "eb9e3406-d93c-42f8-9d88-7c7aa874e2d6") 4829 | (property "Reference" "H3" 4830 | (at 87.63 153.6699 0) 4831 | (effects 4832 | (font 4833 | (size 1.27 1.27) 4834 | ) 4835 | (justify left) 4836 | ) 4837 | ) 4838 | (property "Value" "MountingHole_Pad" 4839 | (at 87.63 156.2099 0) 4840 | (effects 4841 | (font 4842 | (size 1.27 1.27) 4843 | ) 4844 | (justify left) 4845 | ) 4846 | ) 4847 | (property "Footprint" "MountingHole:MountingHole_2.2mm_M2_ISO14580_Pad" 4848 | (at 85.09 156.21 0) 4849 | (effects 4850 | (font 4851 | (size 1.27 1.27) 4852 | ) 4853 | (hide yes) 4854 | ) 4855 | ) 4856 | (property "Datasheet" "~" 4857 | (at 85.09 156.21 0) 4858 | (effects 4859 | (font 4860 | (size 1.27 1.27) 4861 | ) 4862 | (hide yes) 4863 | ) 4864 | ) 4865 | (property "Description" "Mounting Hole with connection" 4866 | (at 85.09 156.21 0) 4867 | (effects 4868 | (font 4869 | (size 1.27 1.27) 4870 | ) 4871 | (hide yes) 4872 | ) 4873 | ) 4874 | (pin "1" 4875 | (uuid "c8ac12af-2fe3-4b0f-a2cc-06d36383557d") 4876 | ) 4877 | (instances 4878 | (project "demodulator" 4879 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 4880 | (reference "H3") 4881 | (unit 1) 4882 | ) 4883 | ) 4884 | ) 4885 | ) 4886 | (symbol 4887 | (lib_id "power:GND") 4888 | (at 115.57 111.76 0) 4889 | (unit 1) 4890 | (exclude_from_sim no) 4891 | (in_bom yes) 4892 | (on_board yes) 4893 | (dnp no) 4894 | (fields_autoplaced yes) 4895 | (uuid "f4b3e3c2-6c6a-47bf-bc89-1a5511835f3d") 4896 | (property "Reference" "#PWR03" 4897 | (at 115.57 118.11 0) 4898 | (effects 4899 | (font 4900 | (size 1.27 1.27) 4901 | ) 4902 | (hide yes) 4903 | ) 4904 | ) 4905 | (property "Value" "GND" 4906 | (at 115.57 116.84 0) 4907 | (effects 4908 | (font 4909 | (size 1.27 1.27) 4910 | ) 4911 | ) 4912 | ) 4913 | (property "Footprint" "" 4914 | (at 115.57 111.76 0) 4915 | (effects 4916 | (font 4917 | (size 1.27 1.27) 4918 | ) 4919 | (hide yes) 4920 | ) 4921 | ) 4922 | (property "Datasheet" "" 4923 | (at 115.57 111.76 0) 4924 | (effects 4925 | (font 4926 | (size 1.27 1.27) 4927 | ) 4928 | (hide yes) 4929 | ) 4930 | ) 4931 | (property "Description" "Power symbol creates a global label with name \"GND\" , ground" 4932 | (at 115.57 111.76 0) 4933 | (effects 4934 | (font 4935 | (size 1.27 1.27) 4936 | ) 4937 | (hide yes) 4938 | ) 4939 | ) 4940 | (pin "1" 4941 | (uuid "cc41e9fa-76b1-4275-a3c3-23121bee9fcc") 4942 | ) 4943 | (instances 4944 | (project "" 4945 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 4946 | (reference "#PWR03") 4947 | (unit 1) 4948 | ) 4949 | ) 4950 | ) 4951 | ) 4952 | (symbol 4953 | (lib_id "power:GND") 4954 | (at 85.09 158.75 0) 4955 | (unit 1) 4956 | (exclude_from_sim no) 4957 | (in_bom yes) 4958 | (on_board yes) 4959 | (dnp no) 4960 | (fields_autoplaced yes) 4961 | (uuid "fb14629c-e1e9-4077-acfc-2cb970fbe267") 4962 | (property "Reference" "#PWR010" 4963 | (at 85.09 165.1 0) 4964 | (effects 4965 | (font 4966 | (size 1.27 1.27) 4967 | ) 4968 | (hide yes) 4969 | ) 4970 | ) 4971 | (property "Value" "GND" 4972 | (at 85.09 163.83 0) 4973 | (effects 4974 | (font 4975 | (size 1.27 1.27) 4976 | ) 4977 | ) 4978 | ) 4979 | (property "Footprint" "" 4980 | (at 85.09 158.75 0) 4981 | (effects 4982 | (font 4983 | (size 1.27 1.27) 4984 | ) 4985 | (hide yes) 4986 | ) 4987 | ) 4988 | (property "Datasheet" "" 4989 | (at 85.09 158.75 0) 4990 | (effects 4991 | (font 4992 | (size 1.27 1.27) 4993 | ) 4994 | (hide yes) 4995 | ) 4996 | ) 4997 | (property "Description" "Power symbol creates a global label with name \"GND\" , ground" 4998 | (at 85.09 158.75 0) 4999 | (effects 5000 | (font 5001 | (size 1.27 1.27) 5002 | ) 5003 | (hide yes) 5004 | ) 5005 | ) 5006 | (pin "1" 5007 | (uuid "937ae63e-adf2-428c-99e8-6c11a958bdcf") 5008 | ) 5009 | (instances 5010 | (project "demodulator" 5011 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 5012 | (reference "#PWR010") 5013 | (unit 1) 5014 | ) 5015 | ) 5016 | ) 5017 | ) 5018 | (symbol 5019 | (lib_id "Device:C") 5020 | (at 113.03 132.08 180) 5021 | (unit 1) 5022 | (exclude_from_sim no) 5023 | (in_bom yes) 5024 | (on_board yes) 5025 | (dnp no) 5026 | (fields_autoplaced yes) 5027 | (uuid "fb1f82ab-1b4f-49df-ae41-6e16e8d257ae") 5028 | (property "Reference" "C3" 5029 | (at 116.84 130.8099 0) 5030 | (effects 5031 | (font 5032 | (size 1.27 1.27) 5033 | ) 5034 | (justify right) 5035 | ) 5036 | ) 5037 | (property "Value" "1u" 5038 | (at 116.84 133.3499 0) 5039 | (effects 5040 | (font 5041 | (size 1.27 1.27) 5042 | ) 5043 | (justify right) 5044 | ) 5045 | ) 5046 | (property "Footprint" "Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder" 5047 | (at 112.0648 128.27 0) 5048 | (effects 5049 | (font 5050 | (size 1.27 1.27) 5051 | ) 5052 | (hide yes) 5053 | ) 5054 | ) 5055 | (property "Datasheet" "~" 5056 | (at 113.03 132.08 0) 5057 | (effects 5058 | (font 5059 | (size 1.27 1.27) 5060 | ) 5061 | (hide yes) 5062 | ) 5063 | ) 5064 | (property "Description" "Unpolarized capacitor" 5065 | (at 113.03 132.08 0) 5066 | (effects 5067 | (font 5068 | (size 1.27 1.27) 5069 | ) 5070 | (hide yes) 5071 | ) 5072 | ) 5073 | (pin "2" 5074 | (uuid "4c7051d5-1476-4a9a-95f6-b0ef0aa6fdd0") 5075 | ) 5076 | (pin "1" 5077 | (uuid "23e3a24c-43d7-490b-a21b-57b88723b5d1") 5078 | ) 5079 | (instances 5080 | (project "demodulator" 5081 | (path "/7f8d78ce-d6cf-4202-98d4-0936606c6559" 5082 | (reference "C3") 5083 | (unit 1) 5084 | ) 5085 | ) 5086 | ) 5087 | ) 5088 | (sheet_instances 5089 | (path "/" 5090 | (page "1") 5091 | ) 5092 | ) 5093 | ) 5094 | --------------------------------------------------------------------------------