Compare commits

2 Commits

Author SHA1 Message Date
051c0c13c9 finish PCB board drawing 2025-12-22 16:10:23 +02:00
21da24695a Оновлення стану системи 2025-12-21 21:43:26 +02:00
17 changed files with 146002 additions and 1225 deletions

11
.vscode/sftp.json vendored Normal file
View File

@@ -0,0 +1,11 @@
{
"name": "My Server",
"host": "localhost",
"protocol": "sftp",
"port": 22,
"username": "username",
"remotePath": "/",
"uploadOnSave": false,
"useTempFile": false,
"openSsh": false
}

View File

@@ -64,14 +64,14 @@ watch-watch — вбудована система на ESP32-S3 для нагл
## UART взаємодія та heartbeat
- Загальний UART (типово UART1, GPIO17/16) підключений до аналогового мультиплексора, лінії адреси `A0/A1/A2` (GPIO 9/10/11) вибирають одну з Raspberry Pi.
- Модуль `uart_mux` серіалізує доступ до UART, надає API для `uart_mux_write/read` і періодично опитує UART на наявність heartbeat.
- Після кожного вимірювання INA226 ESP32-S3 відправляє поточну телеметрію (`PWR <V> <I>`) до активної Raspberry Pi.
- Після кожного вимірювання INA226 ESP32-S3 відправляє поточну телеметрію (`PWR <V>V <I>A`) до активної Raspberry Pi.
- Якщо heartbeat від Pi не надходить протягом `CONFIG_WATCH_UART_HEARTBEAT_TIMEOUT_SEC` (за замовчуванням 60 с), відповідний канал живлення вимикається й знову вмикається для примусового перезапуску.
- Команди CLI `uart send` / `uart read` дозволяють вручну надсилати/читати повідомлення, а в `app_main` можна реалізувати власні протоколи синхронізації.
## UART взаємодія з Raspberry Pi
- Шина UART (типово UART1, TX=GPIO17, RX=GPIO16) підключена до аналогового мультиплексора з адресними лініями A0/A1/A2 (GPIO 9/10/11), що дозволяє вибирати одну з 5 Raspberry Pi.
- Модуль `uart_mux` гарантує серійний доступ: перед операцією він виставляє двійковий код каналу на A0-A2 та блокує UART м’ютексом.
- У `app_main` після вимірювань кожному Pi відправляється телеметрія (`CHx <V>V <I>mA`), а через CLI можна виконати `uart send <n> <msg>` або `uart read <n> [len]`.
- У `app_main` після вимірювань кожному Pi відправляється телеметрія (`CHx <V>V <I>A`), а через CLI можна виконати `uart send <n> <msg>` або `uart read <n> [len]`.
- Усі параметри (порт, швидкість, GPIO) доступні в `menuconfig → UART мультиплексор`.
## USB CDC CLI

View File

@@ -0,0 +1 @@
{"ARCHIVE_NAME": "", "EXTRA_LAYERS": "", "ALL_ACTIVE_LAYERS": false, "EXTEND_EDGE_CUT": false, "ALTERNATIVE_EDGE_CUT": false, "AUTO TRANSLATE": true, "AUTO FILL": true, "EXCLUDE DNP": false, "OPEN BROWSER": true, "NO_BACKUP_OPT": false}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,506 @@
P CODE 00
P UNITS CUST 0
P arrayDim N
317GND VIA MD0118PA00X+052000Y-017250X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+051500Y-017250X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+066063Y-030875X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+066063Y-030875X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+068875Y-025750X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+070125Y-026750X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+071813Y-029063X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+069188Y-028750X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+072875Y-030125X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+071625Y-030125X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+048938Y-028500X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+048938Y-026000X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+048938Y-018500X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+048875Y-021000X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+048938Y-023500X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+053563Y-020313X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+054188Y-019813X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+055000Y-020625X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+055000Y-020125X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+057438Y-020063X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+058125Y-019813X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+063063Y-016313X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+063063Y-017563X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+063063Y-018688X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+063063Y-019625X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+063063Y-020563X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+064313Y-021000X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+064875Y-021688X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+066188Y-025188X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+065750Y-025188X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+065938Y-027625X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+066625Y-027625X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+066625Y-026813X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+065875Y-026813X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+063938Y-026875X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+060688Y-026813X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+062875Y-028063X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+061000Y-028000X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+059938Y-029000X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+057813Y-028750X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+056625Y-028750X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+054188Y-028750X0236Y0000R000S1526506179
317+3.3V VIA MD0118PA00X+052625Y-017249X0236Y0000R000S1526506179
317+3.3V VIA MD0118PA00X+053313Y-018188X0236Y0000R000S1526506179
317ET-(J14-PIN_2) VIA MD0118PA00X+055750Y-019813X0236Y0000R000S1526506179
317ET-(J14-PIN_2) VIA MD0118PA00X+064188Y-024625X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+068500Y-016125X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+073813Y-016063X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+073313Y-017688X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+068563Y-017563X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+072438Y-019438X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+071813Y-019438X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+070375Y-019313X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+070125Y-019750X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+072813Y-024188X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+071000Y-026750X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+065688Y-030000X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+065625Y-030875X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+065000Y-030875X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+063875Y-030875X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+063250Y-030813X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+057750Y-029750X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+060813Y-029688X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+058188Y-029688X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+060250Y-029688X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+058813Y-029313X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+059813Y-029688X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+058813Y-029688X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+052750Y-024750X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+052875Y-027500X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+054125Y-027813X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+055125Y-027813X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+058500Y-020875X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+058813Y-017881X0236Y0000R000S1526506179
317+5V VIA MD0118PA00X+060063Y-019000X0236Y0000R000S1526506179
317+5V VIA MD0118PA00X+058188Y-019000X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+055500Y-025625X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+057000Y-025375X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+057750Y-025250X0236Y0000R000S1526506179
317+3.3V VIA MD0118PA00X+059509Y-026962X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+057750Y-025750X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+056563Y-020250X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+057250Y-030500X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+057250Y-029750X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+047250Y-030000X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+047250Y-030625X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+054000Y-029875X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+054000Y-030500X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+062000Y-017500X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+060000Y-017125X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+058375Y-017125X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+056250Y-017125X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+054875Y-018500X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+054188Y-019375X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+055750Y-018938X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+056250Y-018500X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+056125Y-020250X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+055438Y-020563X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+060750Y-021250X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+061125Y-025750X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+062000Y-026875X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+067875Y-026750X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+066625Y-025188X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+066250Y-026813X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+066250Y-027625X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+072875Y-025875X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+070125Y-025625X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+069000Y-025250X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+068250Y-025875X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+071000Y-024250X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+070000Y-024250X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+067250Y-021875X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+071000Y-020750X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+065875Y-016250X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+065125Y-016250X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+065875Y-018500X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+065250Y-018500X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+062063Y-018688X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+062000Y-016313X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+060000Y-016125X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+058250Y-016125X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+047000Y-016875X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+047000Y-016125X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+052000Y-018000X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+052000Y-020500X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+052000Y-023000X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+052000Y-025500X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+052000Y-028000X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+062500Y-030875X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+062500Y-030375X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+062500Y-030000X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+061250Y-030750X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+061250Y-030375X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+061250Y-030000X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+064750Y-029125X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+064750Y-028750X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+064750Y-028375X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+063875Y-029125X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+063875Y-028750X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+063875Y-028375X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+063375Y-029125X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+063375Y-028750X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+063375Y-028375X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+065250Y-029125X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+065250Y-028750X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+065250Y-028375X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+067375Y-029375X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+070375Y-030625X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+069500Y-030625X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+076000Y-030625X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+075375Y-030625X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+075125Y-027750X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+076125Y-026375X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+075500Y-026375X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+072875Y-025000X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+072875Y-023500X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+075375Y-022500X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+074875Y-020125X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+070000Y-022125X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+069000Y-022125X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+068000Y-020875X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+069000Y-028125X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+068500Y-028125X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+068000Y-028125X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+066938Y-024563X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+064875Y-022625X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+066750Y-022625X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+062063Y-019625X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+060125Y-020125X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+058063Y-020750X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+061875Y-025875X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+055375Y-026250X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+057625Y-027000X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+053375Y-025875X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+053750Y-023125X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+054000Y-020875X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+055000Y-021250X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+055000Y-022125X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+055000Y-022875X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+055000Y-023438X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+055000Y-024125X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+055000Y-025125X0236Y0000R000S1526506179
317GND VIA MD0118PA00X+062750Y-022625X0236Y0000R000S1526506179
317NET-(U3-GPIO0) VIA MD0118PA00X+069375Y-019250X0236Y0000R000S1526506179
317NET-(U3-GPIO0) VIA MD0118PA00X+060750Y-027250X0236Y0000R000S1526506179
317+3.3V VIA MD0118PA00X+062375Y-025750X0236Y0000R000S1526506179
317+3.3V VIA MD0118PA00X+064750Y-023250X0236Y0000R000S1526506179
317+3.3V VIA MD0118PA00X+064750Y-024875X0236Y0000R000S1526506179
317+5V VIA MD0118PA00X+060625Y-028500X0236Y0000R000S1526506179
317RX VIA MD0118PA00X+068500Y-026375X0236Y0000R000S1526506179
317TX VIA MD0118PA00X+068750Y-020625X0236Y0000R000S1526506179
317A0 VIA MD0118PA00X+069000Y-022875X0236Y0000R000S1526506179
317A1 VIA MD0118PA00X+068500Y-022875X0236Y0000R000S1526506179
317A2 VIA MD0118PA00X+068000Y-022875X0236Y0000R000S1526506179
317POWER_RAIL_IN VIA MD0118PA00X+067375Y-020250X0236Y0000R000S1526506179
317POWER_RAIL_IN VIA MD0118PA00X+065250Y-022000X0236Y0000R000S1526506179
317+3.3V VIA MD0118PA00X+062125Y-022000X0236Y0000R000S1526506179
317EN0 VIA MD0118PA00X+059000Y-027375X0236Y0000R000S1526506179
317EN1 VIA MD0118PA00X+058494Y-027625X0236Y0000R000S1526506179
317EN2 VIA MD0118PA00X+059500Y-027375X0236Y0000R000S1526506179
317EN3 VIA MD0118PA00X+059921Y-027375X0236Y0000R000S1526506179
317EN4 VIA MD0118PA00X+060250Y-027750X0236Y0000R000S1526506179
317+3.3V VIA MD0118PA00X+057000Y-022250X0236Y0000R000S1526506179
317+3.3V VIA MD0118PA00X+057539Y-024173X0236Y0000R000S1526506179
317+3.3V VIA MD0118PA00X+069625Y-022500X0236Y0000R000S1526506179
317+3.3V VIA MD0118PA00X+072000Y-020250X0236Y0000R000S1526506179
317+3.3V VIA MD0118PA00X+072750Y-029250X0236Y0000R000S1526506179
317+3.3V VIA MD0118PA00X+072750Y-027500X0236Y0000R000S1526506179
317+3.3V VIA MD0118PA00X+072000Y-026000X0236Y0000R000S1526506179
317+3.3V VIA MD0118PA00X+072000Y-024750X0236Y0000R000S1526506179
317EN0 VIA MD0118PA00X+058986Y-025688X0236Y0000R000S1526506179
317RX VIA MD0118PA00X+056929Y-023051X0236Y0000R000S1526506179
317TX VIA MD0118PA00X+057323Y-023051X0236Y0000R000S1526506179
317EN3 VIA MD0118PA00X+059921Y-025669X0236Y0000R000S1526506179
317EN2 VIA MD0118PA00X+059606Y-025669X0236Y0000R000S1526506179
317EN1 VIA MD0118PA00X+059155Y-025296X0236Y0000R000S1526506179
317A2 VIA MD0118PA00X+062205Y-023858X0236Y0000R000S1526506179
317A1 VIA MD0118PA00X+061811Y-023858X0236Y0000R000S1526506179
317A0 VIA MD0118PA00X+061417Y-023858X0236Y0000R000S1526506179
317EN4 VIA MD0118PA00X+060236Y-025669X0236Y0000R000S1526506179
317TX3 VIA MD0118PA00X+069750Y-028474X0236Y0000R000S1526506179
317TX0 VIA MD0118PA00X+070500Y-028474X0236Y0000R000S1526506179
317TX1 VIA MD0118PA00X+071250Y-028724X0236Y0000R000S1526506179
317TX2 VIA MD0118PA00X+071313Y-030438X0236Y0000R000S1526506179
317RX4 VIA MD0118PA00X+072250Y-021474X0236Y0000R000S1526506179
317RX4 VIA MD0118PA00X+074119Y-022474X0236Y0000R000S1526506179
327EN0.0 U9 -4 A01X+048905Y-019000X0719Y0256R180S2
327EN0.1 U9 -3 A01X+048905Y-018000X0719Y0256R180S2
327GND U9 -2 A01X+052595Y-018000X0719Y0256R180S2
327NET-(R1-PAD1) U9 -1 A01X+052595Y-019000X0719Y0256R180S2
317GND J14 -1 D0394PA00X+049813Y-016563X0669Y0669R270S0
317ET-(J14-PIN_2) J14 -2 D0394PA00X+050813Y-016563X0669Y0000R270S0
317+3.3V J14 -3 D0394PA00X+051813Y-016563X0669Y0000R270S0
327+3.3V C1 -1 A01X+053063Y-017249X0394Y0571R270S2
327GND C1 -2 A01X+053063Y-016501X0394Y0571R270S2
327GND J1 -S1 A01X+057122Y-016805X0858Y0787R180S2
327GND J1 -S1 A01X+057122Y-018352X0858Y0787R180S2
327GND J1 -S1 A01X+061146Y-016805X0858Y0787R180S2
327GND J1 -S1 A01X+061146Y-018352X0858Y0787R180S2
327GND J1 -B12 A01X+060394Y-018579X0236Y0453R180S2
327+5V J1 -B9 A01X+060079Y-018579X0236Y0453R180S2
327J1-SBU2-PADB8) J1 -B8 A01X+059823Y-018579X0118Y0453R180S2
327-(J1-D--PADA7) J1 -B7 A01X+059429Y-018579X0118Y0453R180S2
327-(J1-D+-PADA6) J1 -B6 A01X+058839Y-018579X0118Y0453R180S2
327NET-(J1-CC2) J1 -B5 A01X+058445Y-018579X0118Y0453R180S2
327+5V J1 -B4 A01X+058189Y-018579X0236Y0453R180S2
327GND J1 -B1 A01X+057874Y-018579X0236Y0453R180S2
327GND J1 -A12 A01X+057874Y-018579X0236Y0453R180S2
327+5V J1 -A9 A01X+058189Y-018579X0236Y0453R180S2
327J1-SBU1-PADA8) J1 -A8 A01X+058642Y-018579X0118Y0453R180S2
327-(J1-D--PADA7) J1 -A7 A01X+059035Y-018579X0118Y0453R180S2
327-(J1-D+-PADA6) J1 -A6 A01X+059232Y-018579X0118Y0453R180S2
327NET-(J1-CC1) J1 -A5 A01X+059626Y-018579X0118Y0453R180S2
327+5V J1 -A4 A01X+060079Y-018579X0236Y0453R180S2
327GND J1 -A1 A01X+060394Y-018579X0236Y0453R180S2
367N/C J1 D0256UA00X+057996Y-018156X0256Y0000R180S0
367N/C J1 D0256UA00X+060272Y-018156X0256Y0000R180S0
327TX TP4 -1 A01X+069500Y-020250X0787Y0000R000S2
317GND U3 -57 D0079PA00X+059823Y-022047X0197Y0000R270S3
317GND U3 -57 D0079PA00X+059134Y-022047X0197Y0000R270S3
317GND U3 -57 D0079PA00X+058445Y-022047X0197Y0000R270S3
317GND U3 -57 D0079PA00X+059823Y-022736X0197Y0000R270S3
327GND U3 -57 A02X+059134Y-022736X1575Y1575R270S3
327GND U3 -57 A01X+059134Y-022736X1575Y1575R270S2
317GND U3 -57 D0079PA00X+059134Y-022736X0197Y0000R270S3
317GND U3 -57 D0079PA00X+058445Y-022736X0197Y0000R270S3
317GND U3 -57 D0079PA00X+059823Y-023425X0197Y0000R270S3
317GND U3 -57 D0079PA00X+059134Y-023425X0197Y0000R270S3
317GND U3 -57 D0079PA00X+058445Y-023425X0197Y0000R270S3
327+3.3V U3 -56 A01X+057776Y-023760X0079Y0315R270S2
327+3.3V U3 -55 A01X+057776Y-023602X0079Y0315R270S2
327ET-(U3-XTAL_P) U3 -54 A01X+057776Y-023445X0079Y0315R270S2
327ET-(U3-XTAL_N) U3 -53 A01X+057776Y-023287X0079Y0315R270S2
327-GPIO46-PAD52) U3 -52 A01X+057776Y-023130X0079Y0315R270S2
327-GPIO45-PAD51) U3 -51 A01X+057776Y-022972X0079Y0315R270S2
327TX U3 -50 A01X+057776Y-022815X0079Y0315R270S2
327RX U3 -49 A01X+057776Y-022657X0079Y0315R270S2
327U3-MTMS-PAD48) U3 -48 A01X+057776Y-022500X0079Y0315R270S2
327U3-MTDI-PAD47) U3 -47 A01X+057776Y-022343X0079Y0315R270S2
327+3.3V U3 -46 A01X+057776Y-022185X0079Y0315R270S2
327U3-MTDO-PAD45) U3 -45 A01X+057776Y-022028X0079Y0315R270S2
327U3-MTCK-PAD44) U3 -44 A01X+057776Y-021870X0079Y0315R270S2
327-GPIO38-PAD43) U3 -43 A01X+057776Y-021713X0079Y0315R270S2
327-GPIO37-PAD42) U3 -42 A01X+058110Y-021378X0315Y0079R270S2
327-GPIO36-PAD41) U3 -41 A01X+058268Y-021378X0315Y0079R270S2
327-GPIO35-PAD40) U3 -40 A01X+058425Y-021378X0315Y0079R270S2
327-GPIO34-PAD39) U3 -39 A01X+058583Y-021378X0315Y0079R270S2
327-GPIO33-PAD38) U3 -38 A01X+058740Y-021378X0315Y0079R270S2
327PICLK_P-PAD37) U3 -37 A01X+058898Y-021378X0315Y0079R270S2
327PICLK_N-PAD36) U3 -36 A01X+059055Y-021378X0315Y0079R270S2
327U3-SPID-PAD35) U3 -35 A01X+059213Y-021378X0315Y0079R270S2
327U3-SPIQ-PAD34) U3 -34 A01X+059370Y-021378X0315Y0079R270S2
327-SPICLK-PAD33) U3 -33 A01X+059528Y-021378X0315Y0079R270S2
327-SPICS0-PAD32) U3 -32 A01X+059685Y-021378X0315Y0079R270S2
3273-SPIWP-PAD31) U3 -31 A01X+059843Y-021378X0315Y0079R270S2
3273-SPIHD-PAD30) U3 -30 A01X+060000Y-021378X0315Y0079R270S2
327VDD_SPI-PAD29) U3 -29 A01X+060157Y-021378X0315Y0079R270S2
327-SPICS1-PAD28) U3 -28 A01X+060492Y-021713X0079Y0315R270S2
327-GPIO21-PAD27) U3 -27 A01X+060492Y-021870X0079Y0315R270S2
327DP U3 -26 A01X+060492Y-022028X0079Y0315R270S2
327DM U3 -25 A01X+060492Y-022185X0079Y0315R270S2
327ET-(U3-GPIO18) U3 -24 A01X+060492Y-022343X0079Y0315R270S2
327ET-(U3-GPIO17) U3 -23 A01X+060492Y-022500X0079Y0315R270S2
327L_32K_N-PAD22) U3 -22 A01X+060492Y-022657X0079Y0315R270S2
327L_32K_P-PAD21) U3 -21 A01X+060492Y-022815X0079Y0315R270S2
327+3.3V U3 -20 A01X+060492Y-022972X0079Y0315R270S2
327ET-(U3-GPIO14) U3 -19 A01X+060492Y-023130X0079Y0315R270S2
327A2 U3 -18 A01X+060492Y-023287X0079Y0315R270S2
327A1 U3 -17 A01X+060492Y-023445X0079Y0315R270S2
327A0 U3 -16 A01X+060492Y-023602X0079Y0315R270S2
327SCL U3 -15 A01X+060492Y-023760X0079Y0315R270S2
327SDA U3 -14 A01X+060157Y-024094X0315Y0079R270S2
327RGB U3 -13 A01X+060000Y-024094X0315Y0079R270S2
327NET-(U3-GPIO7) U3 -12 A01X+059843Y-024094X0315Y0079R270S2
327NET-(U3-GPIO6) U3 -11 A01X+059685Y-024094X0315Y0079R270S2
327EN4 U3 -10 A01X+059528Y-024094X0315Y0079R270S2
327EN3 U3 -9 A01X+059370Y-024094X0315Y0079R270S2
327EN2 U3 -8 A01X+059213Y-024094X0315Y0079R270S2
327EN1 U3 -7 A01X+059055Y-024094X0315Y0079R270S2
327EN0 U3 -6 A01X+058898Y-024094X0315Y0079R270S2
327NET-(U3-GPIO0) U3 -5 A01X+058740Y-024094X0315Y0079R270S2
327T-(U3-CHIP_PU) U3 -4 A01X+058583Y-024094X0315Y0079R270S2
327+3.3V U3 -3 A01X+058425Y-024094X0315Y0079R270S2
327+3.3V U3 -2 A01X+058268Y-024094X0315Y0079R270S2
327ET-(U3-LNA_IN) U3 -1 A01X+058110Y-024094X0315Y0079R270S2
327ET-(U3-LNA_IN) TP1 -1 A01X+056375Y-026500X0787Y0000R000S2
327GND C15 -2 A01X+057087Y-021122X0394Y0571R270S2
327+3.3V C15 -1 A01X+057087Y-021870X0394Y0571R270S2
327ET-(U3-XTAL_N) Y1 -1 A01X+056250Y-022874X0453Y0394R180S2
327GND Y1 -2 A01X+055561Y-022874X0453Y0394R180S2
327GND Y1 -3 A01X+055561Y-023425X0453Y0394R180S2
327ET-(U3-XTAL_P) Y1 -4 A01X+056250Y-023425X0453Y0394R180S2
327GND C10 -2 A01X+055531Y-024173X0394Y0571R180S2
327ET-(U3-XTAL_P) C10 -1 A01X+056280Y-024173X0394Y0571R180S2
327GND C11 -2 A01X+055531Y-022126X0394Y0571R180S2
327ET-(U3-XTAL_N) C11 -1 A01X+056280Y-022126X0394Y0571R180S2
327DP R13 -2 A01X+058740Y-020202X0404Y0551R090S2
327-(J1-D+-PADA6) R13 -1 A01X+058740Y-019483X0404Y0551R090S2
327GND C13 -2 A01X+062374Y-022625X0394Y0571R000S2
327+3.3V C13 -1 A01X+061626Y-022625X0394Y0571R000S2
327GND C12 -2 A01X+057087Y-024921X0394Y0571R090S2
327+3.3V C12 -1 A01X+057087Y-024173X0394Y0571R090S2
327POWER_RAIL_IN U2 -10 A01X+065366Y-022801X0571Y0118R270S2
327POWER_RAIL_OUT U2 -9 A01X+065563Y-022801X0571Y0118R270S2
327POWER_RAIL_IN U2 -8 A01X+065760Y-022801X0571Y0118R270S2
327GND U2 -7 A01X+065957Y-022801X0571Y0118R270S2
327+3.3V U2 -6 A01X+066154Y-022801X0571Y0118R270S2
327SCL U2 -5 A01X+066154Y-024533X0571Y0118R270S2
327SDA U2 -4 A01X+065957Y-024533X0571Y0118R270S2
327~{ALERT}-PAD3) U2 -3 A01X+065760Y-024533X0571Y0118R270S2
327D-(U2-A0-PAD2) U2 -2 A01X+065563Y-024533X0571Y0118R270S2
327D-(U2-A1-PAD1) U2 -1 A01X+065366Y-024533X0571Y0118R270S2
327GND C16 -2 A01X+058110Y-025492X0394Y0571R090S2
327+3.3V C16 -1 A01X+058110Y-024744X0394Y0571R090S2
327ET-(U3-GPIO17) TP9 -1 A01X+063625Y-021875X0787Y0000R000S2
327POWER_RAIL_OUT R9 -2 A01X+064715Y-020000X0482Y1043R180S2
327POWER_RAIL_IN R9 -1 A01X+066535Y-020000X0482Y1043R180S2
327RX TP5 -1 A01X+069500Y-026250X0787Y0000R000S2
327ET-(J14-PIN_2) R6 -2 A01X+061855Y-025197X0404Y0551R000S2
327RGB R6 -1 A01X+061137Y-025197X0404Y0551R000S2
327ET-(U3-GPIO14) TP8 -1 A01X+063625Y-023500X0787Y0000R000S2
327GND C9 -2 A01X+066929Y-024075X0394Y0571R090S2
327+3.3V C9 -1 A01X+066929Y-023327X0394Y0571R090S2
327DM R12 -2 A01X+059528Y-020202X0404Y0551R090S2
327-(J1-D--PADA7) R12 -1 A01X+059528Y-019483X0404Y0551R090S2
327ET-(U3-GPIO18) TP10 -1 A01X+062125Y-020625X0787Y0000R000S2
317RX3 J3 -3 D0394PA00X+073750Y-025474X0669Y0000R000S0
317TX3 J3 -2 D0394PA00X+073750Y-024474X0669Y0000R000S0
317GND J3 -1 D0394PA00X+073750Y-023474X0669Y0669R000S0
327NET-(U3-GPIO6) TP6 -1 A01X+060079Y-026457X0787Y0000R000S2
327RX4 U10 -1 A01X+071500Y-021500X0768Y0236R090S2
327-(U10-A6-PAD2) U10 -2 A01X+071000Y-021500X0768Y0236R090S2
327TX U10 -3 A01X+070500Y-021500X0768Y0236R090S2
327-(U10-A7-PAD4) U10 -4 A01X+070000Y-021500X0768Y0236R090S2
327-(U10-A5-PAD5) U10 -5 A01X+069500Y-021500X0768Y0236R090S2
327GND U10 -6 A01X+069000Y-021500X0768Y0236R090S2
327GND U10 -7 A01X+068500Y-021500X0768Y0236R090S2
327GND U10 -8 A01X+068000Y-021500X0768Y0236R090S2
327A2 U10 -9 A01X+068000Y-023449X0768Y0236R090S2
327A1 U10 -10 A01X+068500Y-023449X0768Y0236R090S2
327A0 U10 -11 A01X+069000Y-023449X0768Y0236R090S2
327RX3 U10 -12 A01X+069500Y-023449X0768Y0236R090S2
327RX0 U10 -13 A01X+070000Y-023449X0768Y0236R090S2
327RX1 U10 -14 A01X+070500Y-023449X0768Y0236R090S2
327RX2 U10 -15 A01X+071000Y-023449X0768Y0236R090S2
327+3.3V U10 -16 A01X+071500Y-023449X0768Y0236R090S2
327+5V D6 -1 A01X+060625Y-029000X0354Y0472R180S2
327NET-(D6-A) D6 -2 A01X+059326Y-029000X0354Y0472R180S2
327NET-(J1-CC2) R11 -1 A01X+057493Y-019442X0404Y0551R180S2
327GND R11 -2 A01X+056775Y-019442X0404Y0551R180S2
327+5V C19 -1 A01X+062374Y-028500X0394Y0571R180S2
327GND C19 -2 A01X+061626Y-028500X0394Y0571R180S2
327T-(U3-CHIP_PU) R15 -1 A01X+058189Y-026176X0404Y0551R090S2
327+3.3V R15 -2 A01X+058189Y-026895X0404Y0551R090S2
327TX R7 -1 A01X+070641Y-020250X0404Y0551R000S2
327+3.3V R7 -2 A01X+071359Y-020250X0404Y0551R000S2
317GND H4 -1 D1063PA00X+075250Y-017125X2126Y0000R000S0
327N/C FID3 A01X+066750Y-030125X0591Y0000R000S2
327+3.3V C17 -1 A01X+064376Y-026500X0394Y0571R000S2
327GND C17 -2 A01X+065124Y-026500X0394Y0571R000S2
317GND J5 -1 D0394PA00X+075750Y-023474X0669Y0669R000S0
317TX1 J5 -2 D0394PA00X+075750Y-024474X0669Y0000R000S0
317RX1 J5 -3 D0394PA00X+075750Y-025474X0669Y0000R000S0
327TX4 U11 -1 A01X+071500Y-027500X0768Y0236R090S2
327-(U11-A6-PAD2) U11 -2 A01X+071000Y-027500X0768Y0236R090S2
327RX U11 -3 A01X+070500Y-027500X0768Y0236R090S2
327-(U11-A7-PAD4) U11 -4 A01X+070000Y-027500X0768Y0236R090S2
327-(U11-A5-PAD5) U11 -5 A01X+069500Y-027500X0768Y0236R090S2
327GND U11 -6 A01X+069000Y-027500X0768Y0236R090S2
327GND U11 -7 A01X+068500Y-027500X0768Y0236R090S2
327GND U11 -8 A01X+068000Y-027500X0768Y0236R090S2
327A2 U11 -9 A01X+068000Y-029449X0768Y0236R090S2
327A1 U11 -10 A01X+068500Y-029449X0768Y0236R090S2
327A0 U11 -11 A01X+069000Y-029449X0768Y0236R090S2
327TX3 U11 -12 A01X+069500Y-029449X0768Y0236R090S2
327TX0 U11 -13 A01X+070000Y-029449X0768Y0236R090S2
327TX1 U11 -14 A01X+070500Y-029449X0768Y0236R090S2
327TX2 U11 -15 A01X+071000Y-029449X0768Y0236R090S2
327+3.3V U11 -16 A01X+071500Y-029449X0768Y0236R090S2
327+3.3V TP3 -1 A01X+063375Y-025250X0787Y0000R000S2
317EN0.0 J7 -1 D0394PA00X+047250Y-018992X0669Y0669R180S0
317EN0.1 J7 -2 D0394PA00X+047250Y-017992X0669Y0000R180S0
327+3.3V C4 -1 A01X+056249Y-025125X0394Y0571R180S2
327GND C4 -2 A01X+055501Y-025125X0394Y0571R180S2
327GND SW1 -1 A01X+069300Y-016739X0630Y0551R180S2
327GND SW1 -1 A01X+072450Y-016739X0630Y0551R180S2
327NET-(U3-GPIO0) SW1 -2 A01X+069300Y-018511X0630Y0551R180S2
327NET-(U3-GPIO0) SW1 -2 A01X+072450Y-018511X0630Y0551R180S2
327NET-(R3-PAD1) U6 -1 A01X+052595Y-024000X0719Y0256R180S2
327GND U6 -2 A01X+052595Y-023000X0719Y0256R180S2
327EN2.1 U6 -3 A01X+048905Y-023000X0719Y0256R180S2
327EN2.0 U6 -4 A01X+048905Y-024000X0719Y0256R180S2
327NET-(R5-PAD1) U8 -1 A01X+052595Y-029000X0719Y0256R180S2
327GND U8 -2 A01X+052595Y-028000X0719Y0256R180S2
327EN4.1 U8 -3 A01X+048905Y-028000X0719Y0256R180S2
327EN4.0 U8 -4 A01X+048905Y-029000X0719Y0256R180S2
327+3.3V C7 -1 A01X+072250Y-029376X0394Y0571R090S2
327GND C7 -2 A01X+072250Y-030124X0394Y0571R090S2
327NET-(R4-PAD1) U7 -1 A01X+052595Y-026500X0719Y0256R180S2
327GND U7 -2 A01X+052595Y-025500X0719Y0256R180S2
327EN3.1 U7 -3 A01X+048905Y-025500X0719Y0256R180S2
327EN3.0 U7 -4 A01X+048905Y-026500X0719Y0256R180S2
327NET-(U3-GPIO0) R14 -1 A01X+059055Y-026176X0404Y0551R090S2
327+3.3V R14 -2 A01X+059055Y-026895X0404Y0551R090S2
327NET-(J1-CC1) R10 -1 A01X+060775Y-019442X0404Y0551R000S2
327GND R10 -2 A01X+061493Y-019442X0404Y0551R000S2
317EN1.0 J8 -1 D0394PA00X+047250Y-021500X0669Y0669R180S0
317EN1.1 J8 -2 D0394PA00X+047250Y-020500X0669Y0000R180S0
327NET-(U3-GPIO7) TP7 -1 A01X+061339Y-026457X0787Y0000R000S2
327+3.3V C8 -1 A01X+071374Y-024724X0394Y0571R180S2
327GND C8 -2 A01X+070626Y-024724X0394Y0571R180S2
327RX R8 -1 A01X+070641Y-026220X0404Y0551R000S2
327+3.3V R8 -2 A01X+071359Y-026220X0404Y0551R000S2
327NET-(R1-PAD1) R1 -1 A01X+053625Y-019016X0404Y0551R090S2
327EN0 R1 -2 A01X+053625Y-019734X0404Y0551R090S2
327+5V C20 -1 A01X+062375Y-027625X0394Y0571R180S2
327GND C20 -2 A01X+061627Y-027625X0394Y0571R180S2
317GND J2 -1 D0394PA00X+073750Y-027724X0669Y0669R000S0
317TX4 J2 -2 D0394PA00X+073750Y-028724X0669Y0000R000S0
317RX4 J2 -3 D0394PA00X+073750Y-029724X0669Y0000R000S0
327+3.3V C14 -1 A01X+056124Y-021250X0394Y0571R180S2
327GND C14 -2 A01X+055376Y-021250X0394Y0571R180S2
317GND J6 -1 D0394PA00X+075750Y-019474X0669Y0669R000S0
317TX0 J6 -2 D0394PA00X+075750Y-020474X0669Y0000R000S0
317RX0 J6 -3 D0394PA00X+075750Y-021474X0669Y0000R000S0
327N/C FID2 A01X+047750Y-016500X0591Y0000R000S2
327GND U1 -1 A01X+065281Y-027510X0787Y0591R090S2
327+3.3V U1 -2 A01X+064375Y-027510X0787Y0591R090S2
327+3.3V U1 -2 A01X+064375Y-029990X0787Y1496R090S2
327+5V U1 -3 A01X+063469Y-027510X0787Y0591R090S2
317EN3.0 J10 -1 D0394PA00X+047250Y-026500X0669Y0669R180S0
317EN3.1 J10 -2 D0394PA00X+047250Y-025500X0669Y0000R180S0
327NET-(R4-PAD1) R4 -1 A01X+053625Y-026516X0404Y0551R090S2
327EN3 R4 -2 A01X+053625Y-027234X0404Y0551R090S2
327NET-(R5-PAD1) R5 -1 A01X+053625Y-028984X0404Y0551R270S2
327EN4 R5 -2 A01X+053625Y-028266X0404Y0551R270S2
327NET-(R3-PAD1) R3 -1 A01X+053625Y-024016X0404Y0551R090S2
327EN2 R3 -2 A01X+053625Y-024734X0404Y0551R090S2
317GND H3 -1 D1063PA00X+054750Y-017125X2126Y0000R000S0
317EN4.0 J11 -1 D0394PA00X+047250Y-029000X0669Y0669R180S0
317EN4.1 J11 -2 D0394PA00X+047250Y-028000X0669Y0000R180S0
327+5V TP2 -1 A01X+062625Y-026500X0787Y0000R000S2
327+3.3V C18 -1 A01X+064376Y-025625X0394Y0571R000S2
327GND C18 -2 A01X+065124Y-025625X0394Y0571R000S2
317GND H1 -1 D1063PA00X+055625Y-029750X2126Y0000R000S0
317NET-(D6-A) J13 -1 D0394PA00X+059326Y-030486X0669Y0669R270S0
317GND J13 -2 D0394PA00X+060326Y-030486X0669Y0000R270S0
317POWER_RAIL_IN J12 -1 D0630PA00X+066937Y-017414X0787Y1024R180S0
317GND J12 -2 D0630PA00X+065559Y-017414X0787Y1024R180S0
317POWER_RAIL_OUT J12 -3 D0630PA00X+064181Y-017414X0787Y1024R180S0
317GND J4 -1 D0394PA00X+075750Y-027724X0669Y0669R000S0
317TX2 J4 -2 D0394PA00X+075750Y-028724X0669Y0000R000S0
317RX2 J4 -3 D0394PA00X+075750Y-029724X0669Y0000R000S0
327NET-(R2-PAD1) R2 -1 A01X+053625Y-021500X0404Y0551R090S2
327EN1 R2 -2 A01X+053625Y-022219X0404Y0551R090S2
327N/C FID1 A01X+073500Y-020000X0591Y0000R000S2
327NET-(R2-PAD1) U5 -1 A01X+052595Y-021500X0719Y0256R180S2
327GND U5 -2 A01X+052595Y-020500X0719Y0256R180S2
327EN1.1 U5 -3 A01X+048905Y-020500X0719Y0256R180S2
327EN1.0 U5 -4 A01X+048905Y-021500X0719Y0256R180S2
317EN2.0 J9 -1 D0394PA00X+047250Y-024000X0669Y0669R180S0
317EN2.1 J9 -2 D0394PA00X+047250Y-023000X0669Y0000R180S0
999

File diff suppressed because it is too large Load Diff

View File

@@ -2,12 +2,213 @@
"board": {
"3dviewports": [],
"design_settings": {
"defaults": {},
"defaults": {
"apply_defaults_to_fp_fields": false,
"apply_defaults_to_fp_shapes": false,
"apply_defaults_to_fp_text": false,
"board_outline_line_width": 0.05,
"copper_line_width": 0.2,
"copper_text_italic": false,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"copper_text_upright": false,
"courtyard_line_width": 0.05,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": true,
"text_position": 0,
"units_format": 0
},
"fab_line_width": 0.1,
"fab_text_italic": false,
"fab_text_size_h": 1.0,
"fab_text_size_v": 1.0,
"fab_text_thickness": 0.15,
"fab_text_upright": false,
"other_line_width": 0.1,
"other_text_italic": false,
"other_text_size_h": 1.0,
"other_text_size_v": 1.0,
"other_text_thickness": 0.15,
"other_text_upright": false,
"pads": {
"drill": 1.0,
"height": 1.7,
"width": 1.7
},
"silk_line_width": 0.1,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.1,
"silk_text_upright": false,
"zones": {
"min_clearance": 0.4
}
},
"diff_pair_dimensions": [],
"drc_exclusions": [],
"rules": {},
"meta": {
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"connection_width": "warning",
"copper_edge_clearance": "error",
"copper_sliver": "warning",
"courtyards_overlap": "error",
"creepage": "error",
"diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error",
"duplicate_footprints": "warning",
"extra_footprint": "warning",
"footprint": "error",
"footprint_filters_mismatch": "ignore",
"footprint_symbol_mismatch": "warning",
"footprint_type_mismatch": "ignore",
"hole_clearance": "error",
"hole_to_hole": "warning",
"holes_co_located": "warning",
"invalid_outline": "error",
"isolated_copper": "warning",
"item_on_disabled_layer": "error",
"items_not_allowed": "error",
"length_out_of_range": "error",
"lib_footprint_issues": "warning",
"lib_footprint_mismatch": "warning",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"mirrored_text_on_front_layer": "warning",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"nonmirrored_text_on_back_layer": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "warning",
"pth_inside_courtyard": "ignore",
"shorting_items": "error",
"silk_edge_clearance": "warning",
"silk_over_copper": "warning",
"silk_overlap": "warning",
"skew_out_of_range": "error",
"solder_mask_bridge": "error",
"starved_thermal": "error",
"text_height": "warning",
"text_on_edge_cuts": "error",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_angle": "error",
"track_dangling": "warning",
"track_segment_length": "error",
"track_width": "error",
"tracks_crossing": "error",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zones_intersect": "error"
},
"rules": {
"max_error": 0.005,
"min_clearance": 0.0,
"min_connection": 0.0,
"min_copper_edge_clearance": 0.5,
"min_groove_width": 0.0,
"min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.2,
"min_microvia_drill": 0.1,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0,
"min_text_height": 0.8,
"min_text_thickness": 0.08,
"min_through_hole_diameter": 0.3,
"min_track_width": 0.0,
"min_via_annular_width": 0.1,
"min_via_diameter": 0.5,
"solder_mask_to_copper_clearance": 0.005,
"use_height_for_length_calcs": true
},
"teardrop_options": [
{
"td_onpthpad": true,
"td_onroundshapesonly": false,
"td_onsmdpad": true,
"td_ontrackend": false,
"td_onvia": true
}
],
"teardrop_parameters": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [],
"via_dimensions": []
"tuning_pattern_settings": {
"diff_pair_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 1.0
},
"diff_pair_skew_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
},
"single_track_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
}
},
"via_dimensions": [],
"zones_allow_external_fillets": false
},
"ipc2581": {
"dist": "",
@@ -239,6 +440,7 @@
"single_global_label": "ignore",
"unannotated": "error",
"unconnected_wire_endpoint": "warning",
"undefined_netclass": "error",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
@@ -271,6 +473,20 @@
"via_diameter": 0.6,
"via_drill": 0.3,
"wire_width": 6
},
{
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_width": 0.2,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "DigitalSig",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"priority": 0,
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.3,
"via_diameter": 0.6,
"via_drill": 0.3
}
],
"meta": {
@@ -358,14 +574,50 @@
"label": "Datasheet",
"name": "Datasheet",
"show": true
},
{
"group_by": false,
"label": "постачальник",
"name": "постачальник",
"show": false
},
{
"group_by": false,
"label": "Постачальник",
"name": "Постачальник",
"show": false
},
{
"group_by": false,
"label": "Опис",
"name": "Description",
"show": false
},
{
"group_by": false,
"label": "#",
"name": "${ITEM_NUMBER}",
"show": false
},
{
"group_by": false,
"label": "Sim.Pins",
"name": "Sim.Pins",
"show": false
},
{
"group_by": false,
"label": "Sim.Device",
"name": "Sim.Device",
"show": false
}
],
"filter_string": "",
"group_symbols": true,
"include_excluded_from_bom": true,
"name": "Default Editing",
"name": "",
"sort_asc": true,
"sort_field": "Налаштування"
"sort_field": "Reference"
},
"connection_grid_size": 50.0,
"drawing": {

File diff suppressed because it is too large Load Diff

View File

@@ -29,10 +29,10 @@
#define CONFIG_WATCH_INA226_I2C_FREQ_HZ 400000
#endif
#ifndef CONFIG_WATCH_INA226_CURRENT_LSB_uA
#define CONFIG_WATCH_INA226_CURRENT_LSB_uA 100
#define CONFIG_WATCH_INA226_CURRENT_LSB_uA 50
#endif
#ifndef CONFIG_WATCH_INA226_SHUNT_MILLIOHM
#define CONFIG_WATCH_INA226_SHUNT_MILLIOHM 10
#define CONFIG_WATCH_INA226_SHUNT_MILLIOHM 100
#endif
#ifndef CONFIG_WATCH_INA226_ADDR
#define CONFIG_WATCH_INA226_ADDR 0x40
@@ -51,7 +51,7 @@
#if CONFIG_WATCH_INA226_ENABLED
static const char *TAG = "ina226";
static bool s_initialized;
static float s_current_lsb_ma;
static float s_current_lsb_a;
static uint8_t s_address = CONFIG_WATCH_INA226_ADDR;
static ina226_reading_t s_last_reading;
#endif
@@ -84,7 +84,7 @@ esp_err_t ina226_monitor_init(void)
double calibration = 0.00512 / (current_lsb_a * shunt_ohms);
if (calibration > 0xFFFF) calibration = 0xFFFF;
uint16_t calibration_value = (uint16_t)calibration;
s_current_lsb_ma = (float)current_lsb_a * 1000.0f;
s_current_lsb_a = (float)current_lsb_a;
const uint16_t config_value = INA226_CONFIG_AVG_16 |
INA226_CONFIG_VBUS_1100US |
@@ -159,13 +159,13 @@ esp_err_t ina226_monitor_sample(ina226_reading_t *out_reading)
ESP_RETURN_ON_ERROR(ina226_read_register(INA226_REG_CURRENT, &current_raw), TAG, "current read failed");
float voltage_v = (float)bus_raw * 1.25f / 1000.0f;
float current_ma = (int16_t)current_raw * s_current_lsb_ma;
float power_mw = voltage_v * current_ma;
float current_a = (int16_t)current_raw * s_current_lsb_a;
float power_w = voltage_v * current_a;
s_last_reading = (ina226_reading_t){
.voltage_v = voltage_v,
.current_ma = current_ma,
.power_mw = power_mw,
.current_a = current_a,
.power_w = power_w,
};
if (out_reading) {
*out_reading = s_last_reading;

View File

@@ -13,8 +13,8 @@
typedef struct {
float voltage_v;
float current_ma;
float power_mw;
float current_a;
float power_w;
} ina226_reading_t;
// Ініціалізує INA226: конфігурує I2C та калібрує вимірювач.

View File

@@ -140,8 +140,8 @@ void app_main(void)
ina226_reading_t reading = {0};
if (ina226_monitor_ready() && ina226_monitor_sample(&reading) == ESP_OK) {
ESP_LOGI(TAG, "Живлення: %.2f В, %.1f мА, %.1f мВт",
reading.voltage_v, reading.current_ma, reading.power_mw);
ESP_LOGI(TAG, "Живлення: %.2f В, %.2f А, %.2f Вт",
reading.voltage_v, reading.current_a, reading.power_w);
}
if (uart_mux_ready()) {

View File

@@ -181,8 +181,8 @@ static void usb_cli_handle_switch(const char *cmd, char *args)
static void usb_cli_print_measurement(size_t channel, const ina226_reading_t *reading)
{
usb_cli_printf("\r\nCH%u: %.2f В, %.1f мА, %.1f мВт",
(unsigned)channel, reading->voltage_v, reading->current_ma, reading->power_mw);
usb_cli_printf("\r\nCH%u: %.2f В, %.3f А, %.3f Вт",
(unsigned)channel, reading->voltage_v, reading->current_a, reading->power_w);
}
static void usb_cli_handle_sense(char *args)

View File

@@ -27,6 +27,7 @@
#define WS2812_ALERT_GAP_PERIOD pdMS_TO_TICKS(2000)
#define WS2812_VPN_ALERT_BLINKS 2
#define WS2812_APP_ALERT_BLINKS 3
#define WS2812_BRIGHTNESS_PERCENT 5
#define WS2812_VPN_SECTION_TICKS (WS2812_ALERT_BLINK_PERIOD * 2U * WS2812_VPN_ALERT_BLINKS)
#define WS2812_APP_SECTION_TICKS (WS2812_ALERT_BLINK_PERIOD * 2U * WS2812_APP_ALERT_BLINKS)
@@ -54,6 +55,7 @@ static void ws2812_status_compute_color(size_t index,
uint8_t *g,
uint8_t *b);
static bool ws2812_recalculate_alert_counts(void);
static uint8_t ws2812_apply_brightness(uint8_t component);
static void ws2812_animation_timer_cb(TimerHandle_t timer)
{
@@ -176,7 +178,11 @@ static esp_err_t ws2812_status_apply(void)
for (size_t i = 0; i < WS2812_STATUS_LED_COUNT && err == ESP_OK; ++i) {
uint8_t r = 0, g = 0, b = 0;
ws2812_status_compute_color(i, now_ticks, &r, &g, &b);
err = led_strip_set_pixel(s_strip, i, g, r, b);
err = led_strip_set_pixel(s_strip,
i,
ws2812_apply_brightness(g),
ws2812_apply_brightness(r),
ws2812_apply_brightness(b));
}
if (err == ESP_OK) {
err = led_strip_refresh(s_strip);
@@ -352,3 +358,10 @@ static bool ws2812_recalculate_alert_counts(void)
s_active_app_alerts = app;
return changed;
}
static uint8_t ws2812_apply_brightness(uint8_t component)
{
// Scale brightness down (component * 20%) with rounding to nearest.
const uint16_t scaled = (component * WS2812_BRIGHTNESS_PERCENT + 50U) / 100U;
return (uint8_t)scaled;
}