├── 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 |
--------------------------------------------------------------------------------