<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documentation — Base</title>
<style>
@import url('https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,300;14..32,400;14..32,500;14..32,600;14..32,700&family=JetBrains+Mono:wght@400;500&display=swap');
* { box-sizing: border-box; margin: 0; padding: 0; }
/* Variables du thème clair (par défaut) */
:root {
--bg-primary: #f5f7fb;
--bg-secondary: #ffffff;
--bg-card: #ffffff;
--sidebar-bg: #1a1a2e;
--sidebar-text: #e8edff;
--sidebar-text-secondary: #8b95c9;
--sidebar-accent: #6b8cff;
--primary: #1a3a5c;
--accent: #4f46e5;
--text-primary: #1e293b;
--text-secondary: #475569;
--text-muted: #94a3b8;
--text-white: #1e293b;
--border: #e2e8f0;
--border-hover: #cbd5e1;
--accent-primary: #4f46e5;
--accent-secondary: #818cf8;
--accent-glow: rgba(79, 70, 229, 0.1);
--success: #10b981;
--success-bg: rgba(16, 185, 129, 0.1);
--warning: #f59e0b;
--warning-bg: rgba(245, 158, 11, 0.1);
--info: #3b82f6;
--info-bg: rgba(59, 130, 246, 0.1);
--gold: #fbbf24;
--gold-bg: rgba(251, 191, 36, 0.1);
--step: #8b5cf6;
--step-bg: rgba(139, 92, 246, 0.1);
--tp-color: #ea580c;
--danger: #ef4444;
--font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
--font-mono: 'JetBrains Mono', 'SF Mono', Monaco, monospace;
--radius: 16px;
--radius-sm: 10px;
--shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
--shadow-hover: 0 4px 6px rgba(0, 0, 0, 0.1);
}
/* Thème sombre */
body.dark-theme {
--bg-primary: #0f172a;
--bg-secondary: #1e293b;
--bg-card: #1e293b;
--sidebar-bg: #020617;
--sidebar-text: #e2e8f0;
--sidebar-text-secondary: #64748b;
--text-primary: #f1f5f9;
--text-secondary: #cbd5e1;
--text-muted: #64748b;
--text-white: #f1f5f9;
--border: #334155;
--border-hover: #475569;
--accent-primary: #818cf8;
--accent-secondary: #a5b4fc;
--accent-glow: rgba(129, 140, 248, 0.15);
--shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
--shadow-hover: 0 4px 6px rgba(0, 0, 0, 0.4);
}
body {
font-family: var(--font-sans);
font-size: 14px;
background: var(--bg-primary);
color: var(--text-primary);
display: flex;
min-height: 100vh;
transition: background-color 0.3s ease, color 0.3s ease;
}
/* ── BOUTON THÈME ── */
.theme-toggle {
position: fixed;
bottom: 20px;
right: 20px;
z-index: 1000;
background: var(--accent-primary);
color: white;
border: none;
border-radius: 50px;
padding: 12px 20px;
cursor: pointer;
font-size: 14px;
font-weight: 600;
display: flex;
align-items: center;
gap: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
transition: all 0.3s ease;
font-family: var(--font-sans);
}
.theme-toggle:hover {
transform: scale(1.05);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}
/* ── SIDEBAR ─────────────────────────────── */
#sidebar {
position: fixed;
top: 0; left: 0; bottom: 0;
width: 280px;
background: var(--sidebar-bg);
color: var(--sidebar-text);
display: flex;
flex-direction: column;
overflow-y: auto;
z-index: 100;
box-shadow: 2px 0 12px rgba(0,0,0,0.1);
transition: background-color 0.3s ease;
}
#sidebar-header {
padding: 1.5rem 1.2rem 1rem;
border-bottom: 1px solid rgba(255,255,255,0.08);
background: linear-gradient(135deg, var(--sidebar-bg) 0%, rgba(255,255,255,0.05) 100%);
}
#sidebar-header h1 {
font-size: 1rem;
font-weight: 700;
color: #fff;
letter-spacing: 0.02em;
line-height: 1.3;
}
#sidebar-header p {
font-size: 0.7rem;
color: var(--sidebar-text-secondary);
margin-top: 0.3rem;
font-family: var(--font-mono);
}
/* ── COVERAGE WIDGET ── */
#coverage-widget {
padding: 0.85rem 1.2rem;
border-bottom: 1px solid rgba(255,255,255,0.07);
}
#coverage-widget .cov-title {
font-size: 0.64rem;
text-transform: uppercase;
letter-spacing: 0.1em;
color: var(--sidebar-text-secondary);
margin-bottom: 0.5rem;
font-weight: 600;
}
.cov-global-row {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 0.45rem;
}
.cov-pct-label {
font-family: var(--font-mono);
font-size: 1.3rem;
font-weight: 600;
color: #fff;
line-height: 1;
}
.cov-pct-label.warn { color: #fbbf24; }
.cov-pct-label.danger { color: #f87171; }
.cov-sub {
font-size: 0.65rem;
color: var(--sidebar-text-secondary);
text-align: right;
line-height: 1.5;
}
.cov-bar-wrap {
background: rgba(255,255,255,0.07);
border-radius: 3px;
height: 4px;
overflow: hidden;
}
.cov-bar-fill {
height: 100%;
border-radius: 3px;
transition: width 0.4s ease;
}
/* ── BOUTON RETOUR ── */
.back-button {
margin: 1rem 1.2rem;
padding: 0.6rem 1rem;
background: rgba(107, 140, 255, 0.15);
border: 1px solid var(--accent);
border-radius: 10px;
text-decoration: none;
color: var(--accent);
font-size: 0.8rem;
font-weight: 500;
display: flex;
align-items: center;
gap: 0.5rem;
transition: all 0.25s;
}
.back-button:hover {
background: rgba(107, 140, 255, 0.25);
transform: translateX(-4px);
}
/* ── NAV LINKS ── */
#sidebar-nav {
padding: 0.6rem 0;
flex: 1;
}
#sidebar-nav .nav-section-label {
font-size: 0.62rem;
text-transform: uppercase;
letter-spacing: 0.12em;
color: var(--sidebar-text-secondary);
padding: 0.5rem 1.2rem 0.25rem;
font-weight: 600;
}
.nav-sheet-link {
display: block;
padding: 0.4rem 1.2rem 0.45rem;
text-decoration: none;
color: var(--sidebar-text);
font-size: 0.82rem;
transition: background 0.15s, color 0.15s;
border-left: 3px solid transparent;
position: relative;
}
.nav-sheet-link:hover {
background: rgba(107,140,255,0.08);
color: #fff;
border-left-color: var(--sidebar-accent);
}
.nav-sheet-inner {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 0.4rem;
}
.nav-sheet-name {
flex: 1;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.nav-sheet-pct {
font-family: var(--font-mono);
font-size: 0.65rem;
opacity: 0.55;
flex-shrink: 0;
}
.nav-sheet-bar {
height: 2px;
border-radius: 2px;
margin-top: 0.25rem;
background: rgba(255,255,255,0.05);
overflow: hidden;
}
.nav-sheet-bar-fill {
height: 100%;
border-radius: 2px;
opacity: 0.6;
}
#sidebar-nav a.tp-link {
display: flex;
align-items: center;
gap: 0.5rem;
padding: 0.45rem 1.2rem;
text-decoration: none;
color: #fb923c;
font-size: 0.82rem;
transition: background 0.15s, color 0.15s;
border-left: 3px solid transparent;
}
#sidebar-nav a.tp-link:hover {
background: rgba(249,115,22,0.12);
color: #fdba74;
border-left-color: var(--tp-color);
}
#sidebar-nav a .nav-icon {
font-size: 0.75rem;
opacity: 0.7;
width: 16px;
text-align: center;
}
/* ── MAIN CONTENT ── */
#main {
margin-left: 280px;
flex: 1;
padding: 2rem 2.5rem;
max-width: calc(100vw - 280px);
}
section {
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: var(--radius);
padding: 1.5rem 2rem;
margin-bottom: 1.5rem;
box-shadow: var(--shadow);
transition: all 0.3s ease;
}
section:hover {
border-color: var(--border-hover);
box-shadow: var(--shadow-hover);
}
section h2 {
font-size: 1.1rem;
color: var(--text-primary);
border-left: 4px solid var(--accent);
padding-left: 0.8rem;
margin-bottom: 1.2rem;
font-weight: 600;
}
#recap-test-points h2 {
border-left-color: var(--tp-color);
}
.filename {
font-size: 0.7rem;
font-weight: normal;
color: var(--text-secondary);
font-family: var(--font-mono);
margin-left: 0.5rem;
}
.section-label {
font-size: 0.75rem;
color: var(--text-secondary);
margin: 1.2rem 0 0.6rem;
text-transform: uppercase;
letter-spacing: 0.07em;
font-weight: 600;
}
/* ── ACCORDÉON SVG (ouvert par défaut) ── */
.svg-accordion {
margin-bottom: 1.2rem;
border: 1px solid var(--border);
border-radius: 12px;
overflow: hidden;
}
.svg-summary {
display: flex;
align-items: center;
gap: 0.5rem;
padding: 0.6rem 1rem;
cursor: pointer;
font-size: 0.82rem;
font-weight: 600;
color: var(--text-primary);
background: rgba(0,0,0,0.02);
user-select: none;
list-style: none;
transition: background 0.15s;
}
body.dark-theme .svg-summary {
background: rgba(255,255,255,0.03);
}
.svg-summary::-webkit-details-marker { display: none; }
.svg-summary::marker { display: none; }
.svg-summary:hover {
background: rgba(79, 70, 229, 0.08);
}
details[open] .svg-summary {
background: rgba(79, 70, 229, 0.05);
border-bottom: 1px solid var(--border);
}
.svg-summary::after {
content: "▸";
margin-left: auto;
font-size: 0.7rem;
color: var(--text-secondary);
transition: transform 0.2s;
}
details[open] .svg-summary::after {
transform: rotate(90deg);
}
.svg-icon {
color: var(--accent);
font-size: 0.9rem;
}
.svg-badge {
font-family: var(--font-mono);
font-size: 0.6rem;
background: var(--accent);
color: white;
padding: 0.1rem 0.4rem;
border-radius: 6px;
letter-spacing: 0.05em;
}
.svg-wrap {
padding: 1rem;
background: white;
overflow-x: auto;
transition: background 0.3s ease;
}
body.dark-theme .svg-wrap {
background: #ffffff;
}
.svg-wrap .sheet-svg,
.svg-wrap svg {
width: 100%;
height: auto;
max-height: 900px;
display: block;
background: white;
}
/* ── TABLES ── */
table {
width: 100%;
border-collapse: collapse;
margin-bottom: 0.5rem;
font-size: 0.85rem;
}
thead tr {
background: linear-gradient(135deg, var(--sidebar-bg) 0%, var(--bg-secondary) 100%);
color: var(--text-white);
}
thead th {
padding: 0.6rem 0.9rem;
text-align: left;
font-weight: 600;
font-size: 0.8rem;
letter-spacing: 0.03em;
}
tbody tr:nth-child(even) { background: rgba(0,0,0,0.02); }
body.dark-theme tbody tr:nth-child(even) { background: rgba(255,255,255,0.02); }
tbody tr:hover { background: rgba(79, 70, 229, 0.08); }
tbody td { padding: 0.5rem 0.9rem; border-bottom: 1px solid var(--border); vertical-align: middle; }
.tp-row { border-left: 3px solid var(--tp-color); }
.tp-ref { color: var(--tp-color); font-weight: bold; }
code {
font-family: var(--font-mono);
font-size: 0.85em;
}
.badge {
display: inline-block;
padding: 0.2rem 0.6rem;
border-radius: 20px;
font-size: 0.7rem;
font-weight: 600;
color: #333;
}
.no-doc { color: var(--text-muted); font-style: italic; }
.empty { color: var(--text-muted); font-style: italic; padding: 0.5rem 0; }
.dnp { opacity: 0.45; }
.dnp-badge {
background: var(--danger);
color: white;
font-size: 0.6rem;
padding: 0.1rem 0.4rem;
border-radius: 4px;
margin-left: 0.3rem;
vertical-align: middle;
}
small { color: var(--text-secondary); }
/* ── RECHERCHE GLOBALE ── */
#search-box {
padding: 0.7rem 1.2rem 0.6rem;
border-bottom: 1px solid rgba(255,255,255,0.07);
}
#global-search {
width: 100%;
background: rgba(255,255,255,0.06);
border: 1px solid rgba(255,255,255,0.12);
border-radius: 8px;
padding: 0.5rem 0.7rem;
color: var(--sidebar-text);
font-size: 0.8rem;
font-family: var(--font-sans);
outline: none;
transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
#global-search::placeholder { color: var(--sidebar-text-secondary); }
#global-search:focus {
background: rgba(255,255,255,0.1);
border-color: var(--sidebar-accent);
box-shadow: 0 0 0 3px rgba(107,140,255,0.18);
}
#search-results-count {
font-size: 0.68rem;
color: var(--sidebar-text-secondary);
margin-top: 0.4rem;
font-family: var(--font-mono);
min-height: 1em;
}
mark.search-hit {
background: #fde68a;
color: #1e293b;
padding: 0 2px;
border-radius: 3px;
}
.nav-sheet-link.nav-dim {
opacity: 0.25;
pointer-events: none;
}
/* ── RESPONSIVE ── */
@media (max-width: 768px) {
#sidebar { width: 0px; display: none; }
#main { margin-left: 0; padding: 1rem; max-width: 100vw; }
.theme-toggle { bottom: 10px; right: 10px; padding: 8px 16px; font-size: 12px; }
}
</style>
</head>
<body>
<!-- ── BOUTON CHANGEMENT DE THÈME ── -->
<button id="theme-toggle-btn" class="theme-toggle" onclick="toggleTheme()">
🌙 Thème sombre
</button>
<!-- ── SIDEBAR ── -->
<aside id="sidebar">
<div id="sidebar-header">
<h1>Base</h1>
<p>Généré le 2026-09-15<br>18 feuille(s) · 0 TP</p>
</div>
<div id="search-box">
<input type="text" id="global-search" placeholder="Rechercher… (/)" autocomplete="off" spellcheck="false">
<div id="search-results-count"></div>
</div>
<div id="coverage-widget">
<div class="cov-title">Couverture globale</div>
<div class="cov-global-row">
<div class="cov-pct-label danger">0%</div>
<div class="cov-sub">
0/93 cmp<br>
0/90 sig
</div>
</div>
<div class="cov-bar-wrap">
<div class="cov-bar-fill" style="width:0%; background:#ef4444"></div>
</div>
</div>
<a href="../index.html" class="back-button">
<span>←</span> Retour aux PCB
</a>
<nav id="sidebar-nav">
<div class="nav-section-label">Feuilles</div>
<a href="#anemometer" class="nav-sheet-link">
<div class="nav-sheet-inner">
<span class="nav-sheet-name">Anemometer</span>
<span class="nav-sheet-pct">0%</span>
</div>
<div class="nav-sheet-bar">
<div class="nav-sheet-bar-fill" style="width:0%; background:#ef4444"></div>
</div>
</a>
<a href="#anemometer1" class="nav-sheet-link">
<div class="nav-sheet-inner">
<span class="nav-sheet-name">Anemometer1</span>
<span class="nav-sheet-pct">0%</span>
</div>
<div class="nav-sheet-bar">
<div class="nav-sheet-bar-fill" style="width:0%; background:#ef4444"></div>
</div>
</a>
<a href="#bridge" class="nav-sheet-link">
<div class="nav-sheet-inner">
<span class="nav-sheet-name">Bridge</span>
<span class="nav-sheet-pct">0%</span>
</div>
<div class="nav-sheet-bar">
<div class="nav-sheet-bar-fill" style="width:0%; background:#ef4444"></div>
</div>
</a>
<a href="#crystal" class="nav-sheet-link">
<div class="nav-sheet-inner">
<span class="nav-sheet-name">Crystal</span>
<span class="nav-sheet-pct">0%</span>
</div>
<div class="nav-sheet-bar">
<div class="nav-sheet-bar-fill" style="width:0%; background:#ef4444"></div>
</div>
</a>
<a href="#gnss" class="nav-sheet-link">
<div class="nav-sheet-inner">
<span class="nav-sheet-name">GNSS</span>
<span class="nav-sheet-pct">0%</span>
</div>
<div class="nav-sheet-bar">
<div class="nav-sheet-bar-fill" style="width:0%; background:#ef4444"></div>
</div>
</a>
<a href="#mcu" class="nav-sheet-link">
<div class="nav-sheet-inner">
<span class="nav-sheet-name">MCU</span>
<span class="nav-sheet-pct">0%</span>
</div>
<div class="nav-sheet-bar">
<div class="nav-sheet-bar-fill" style="width:0%; background:#ef4444"></div>
</div>
</a>
<a href="#nrf24" class="nav-sheet-link">
<div class="nav-sheet-inner">
<span class="nav-sheet-name">NRF24</span>
<span class="nav-sheet-pct">0%</span>
</div>
<div class="nav-sheet-bar">
<div class="nav-sheet-bar-fill" style="width:0%; background:#ef4444"></div>
</div>
</a>
<a href="#oled" class="nav-sheet-link">
<div class="nav-sheet-inner">
<span class="nav-sheet-name">OLED</span>
<span class="nav-sheet-pct">0%</span>
</div>
<div class="nav-sheet-bar">
<div class="nav-sheet-bar-fill" style="width:0%; background:#ef4444"></div>
</div>
</a>
<a href="#power" class="nav-sheet-link">
<div class="nav-sheet-inner">
<span class="nav-sheet-name">Power</span>
<span class="nav-sheet-pct">0%</span>
</div>
<div class="nav-sheet-bar">
<div class="nav-sheet-bar-fill" style="width:0%; background:#ef4444"></div>
</div>
</a>
<a href="#power_handler" class="nav-sheet-link">
<div class="nav-sheet-inner">
<span class="nav-sheet-name">Power_Handler</span>
<span class="nav-sheet-pct">0%</span>
</div>
<div class="nav-sheet-bar">
<div class="nav-sheet-bar-fill" style="width:0%; background:#ef4444"></div>
</div>
</a>
<a href="#programming" class="nav-sheet-link">
<div class="nav-sheet-inner">
<span class="nav-sheet-name">Programming</span>
<span class="nav-sheet-pct">0%</span>
</div>
<div class="nav-sheet-bar">
<div class="nav-sheet-bar-fill" style="width:0%; background:#ef4444"></div>
</div>
</a>
<a href="#rtc" class="nav-sheet-link">
<div class="nav-sheet-inner">
<span class="nav-sheet-name">RTC</span>
<span class="nav-sheet-pct">0%</span>
</div>
<div class="nav-sheet-bar">
<div class="nav-sheet-bar-fill" style="width:0%; background:#ef4444"></div>
</div>
</a>
<a href="#reset" class="nav-sheet-link">
<div class="nav-sheet-inner">
<span class="nav-sheet-name">Reset</span>
<span class="nav-sheet-pct">0%</span>
</div>
<div class="nav-sheet-bar">
<div class="nav-sheet-bar-fill" style="width:0%; background:#ef4444"></div>
</div>
</a>
<a href="#temperature_sun" class="nav-sheet-link">
<div class="nav-sheet-inner">
<span class="nav-sheet-name">Temperature_Sun</span>
<span class="nav-sheet-pct">0%</span>
</div>
<div class="nav-sheet-bar">
<div class="nav-sheet-bar-fill" style="width:0%; background:#ef4444"></div>
</div>
</a>
<a href="#translator" class="nav-sheet-link">
<div class="nav-sheet-inner">
<span class="nav-sheet-name">Translator</span>
<span class="nav-sheet-pct">0%</span>
</div>
<div class="nav-sheet-bar">
<div class="nav-sheet-bar-fill" style="width:0%; background:#ef4444"></div>
</div>
</a>
<a href="#user_buttons" class="nav-sheet-link">
<div class="nav-sheet-inner">
<span class="nav-sheet-name">User_Buttons</span>
<span class="nav-sheet-pct">0%</span>
</div>
<div class="nav-sheet-bar">
<div class="nav-sheet-bar-fill" style="width:0%; background:#ef4444"></div>
</div>
</a>
<a href="#wind" class="nav-sheet-link">
<div class="nav-sheet-inner">
<span class="nav-sheet-name">WIND</span>
<span class="nav-sheet-pct">0%</span>
</div>
<div class="nav-sheet-bar">
<div class="nav-sheet-bar-fill" style="width:0%; background:#ef4444"></div>
</div>
</a>
<a href="#xtal" class="nav-sheet-link">
<div class="nav-sheet-inner">
<span class="nav-sheet-name">Xtal</span>
<span class="nav-sheet-pct">0%</span>
</div>
<div class="nav-sheet-bar">
<div class="nav-sheet-bar-fill" style="width:0%; background:#ef4444"></div>
</div>
</a>
</nav>
</aside>
<!-- ── MAIN ── -->
<main id="main">
<div id="anemometer">
<section>
<h2>Anemometer <span class="filename">Anemometer.kicad_sch</span></h2>
<h3 class="section-label">Signaux hiérarchiques</h3>
<table>
<thead>
<tr>
<th>Signal</th>
<th>Direction</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>+5V</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
</tbody>
</table>
<h3 class="section-label">Composants</h3>
<table>
<thead>
<tr>
<th>Réf.</th>
<th>Valeur</th>
<th>Description</th>
<th>Boîtier</th>
<th>Variantes</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>J11</code></td>
<td><strong>Screw_Terminal_01x02_2.54mm</strong></td>
<td>—</td>
<td><small>TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_Horizontal</small></td>
<td>—</td>
</tr>
<tr>
<td><code>JP1</code></td>
<td><strong>Jumper_2.54mm_blue</strong></td>
<td>—</td>
<td><small>Jumper_2.54mm_blue</small></td>
<td>—</td>
</tr>
<tr>
<td><code>R1</code></td>
<td><strong>100k</strong></td>
<td>—</td>
<td><small>R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal</small></td>
<td>—</td>
</tr>
<tr>
<td><code>R2</code></td>
<td><strong>100k</strong></td>
<td>—</td>
<td><small>R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal</small></td>
<td>—</td>
</tr>
</tbody>
</table>
</section>
</div><div id="anemometer1">
<section>
<h2>Anemometer1 <span class="filename">Anemometer1.kicad_sch</span></h2>
<h3 class="section-label">Signaux hiérarchiques</h3>
<table>
<thead>
<tr>
<th>Signal</th>
<th>Direction</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>+5V</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>GND</code></td>
<td><span class="badge" style="background:#f0f0f0">— Passive</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>{I2C}</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
</tbody>
</table>
<h3 class="section-label">Composants</h3>
<table>
<thead>
<tr>
<th>Réf.</th>
<th>Valeur</th>
<th>Description</th>
<th>Boîtier</th>
<th>Variantes</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>J18</code></td>
<td><strong>KF128-2.54_4P</strong></td>
<td>—</td>
<td><small>TerminalBlock_Phoenix_MPT-0,5-4-2.54_1x04_P2.54mm_Horizontal</small></td>
<td>—</td>
</tr>
<tr>
<td><code>T43</code></td>
<td><strong>TP</strong></td>
<td>—</td>
<td><small>TestPoint_Pad_D1.0mm</small></td>
<td>—</td>
</tr>
<tr>
<td><code>T45</code></td>
<td><strong>TP</strong></td>
<td>—</td>
<td><small>TestPoint_Pad_D1.0mm</small></td>
<td>—</td>
</tr>
</tbody>
</table>
</section>
</div><div id="bridge">
<section>
<h2>Bridge <span class="filename">Bridge.kicad_sch</span></h2>
<h3 class="section-label">Signaux hiérarchiques</h3>
<table>
<thead>
<tr>
<th>Signal</th>
<th>Direction</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>GND</code></td>
<td><span class="badge" style="background:#f0f0f0">— Passive</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>IN</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>OUT</code></td>
<td><span class="badge" style="background:#d4f7d4">← Output</span></td>
<td class="no-doc">pas de doc</td>
</tr>
</tbody>
</table>
<h3 class="section-label">Composants</h3>
<table>
<thead>
<tr>
<th>Réf.</th>
<th>Valeur</th>
<th>Description</th>
<th>Boîtier</th>
<th>Variantes</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>R20</code></td>
<td><strong>10k</strong></td>
<td>—</td>
<td><small>R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal</small></td>
<td>—</td>
</tr>
<tr>
<td><code>R21</code></td>
<td><strong>10k</strong></td>
<td>—</td>
<td><small>R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal</small></td>
<td>—</td>
</tr>
</tbody>
</table>
</section>
</div><div id="crystal">
<section>
<h2>Crystal <span class="filename">Crystal.kicad_sch</span></h2>
<h3 class="section-label">Signaux hiérarchiques</h3>
<table>
<thead>
<tr>
<th>Signal</th>
<th>Direction</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>GND</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>XTAl_1</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>XTAl_2</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
</tbody>
</table>
<h3 class="section-label">Composants</h3>
<table>
<thead>
<tr>
<th>Réf.</th>
<th>Valeur</th>
<th>Description</th>
<th>Boîtier</th>
<th>Variantes</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>C7</code></td>
<td><strong>22pF</strong></td>
<td>—</td>
<td><small>C_0603_1608Metric</small></td>
<td>—</td>
</tr>
<tr>
<td><code>C8</code></td>
<td><strong>22pF</strong></td>
<td>—</td>
<td><small>C_0603_1608Metric</small></td>
<td>—</td>
</tr>
<tr>
<td><code>Y1</code></td>
<td><strong>16MHz</strong></td>
<td>—</td>
<td><small>Crystal_SMD_HC49-SD</small></td>
<td>—</td>
</tr>
</tbody>
</table>
</section>
</div><div id="gnss">
<section>
<h2>GNSS <span class="filename">GNSS.kicad_sch</span></h2>
<h3 class="section-label">Signaux hiérarchiques</h3>
<table>
<thead>
<tr>
<th>Signal</th>
<th>Direction</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>+5V</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>BUZZER</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>GND</code></td>
<td><span class="badge" style="background:#f0f0f0">— Passive</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>GND</code></td>
<td><span class="badge" style="background:#f0f0f0">— Passive</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>RX_GNSS</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>TX_GNSS</code></td>
<td><span class="badge" style="background:#d4f7d4">← Output</span></td>
<td class="no-doc">pas de doc</td>
</tr>
</tbody>
</table>
<h3 class="section-label">Composants</h3>
<table>
<thead>
<tr>
<th>Réf.</th>
<th>Valeur</th>
<th>Description</th>
<th>Boîtier</th>
<th>Variantes</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>BZ2</code></td>
<td><strong>Buzzer</strong></td>
<td>—</td>
<td><small>Buzzer_12x9.5RM7.6</small></td>
<td>—</td>
</tr>
<tr>
<td><code>J10</code></td>
<td><strong>Conn_01x03_Pin</strong></td>
<td>—</td>
<td><small>PinHeader_1x03_P2.54mm_Vertical</small></td>
<td>—</td>
</tr>
<tr>
<td><code>J14</code></td>
<td><strong>JST_PH_4P</strong></td>
<td>—</td>
<td><small>JST_PH_B4B-PH-K_1x04_P2.00mm_Vertical</small></td>
<td>—</td>
</tr>
<tr>
<td><code>JP5</code></td>
<td><strong>60900213421</strong></td>
<td>—</td>
<td><small>Jumper_2.54mm_blue</small></td>
<td>—</td>
</tr>
<tr>
<td><code>R22</code></td>
<td><strong>10k</strong></td>
<td>—</td>
<td><small>R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal</small></td>
<td>—</td>
</tr>
<tr>
<td><code>R23</code></td>
<td><strong>10k</strong></td>
<td>—</td>
<td><small>R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal</small></td>
<td>—</td>
</tr>
</tbody>
</table>
</section>
</div><div id="mcu">
<section>
<h2>MCU <span class="filename">MCU.kicad_sch</span></h2>
<h3 class="section-label">Signaux hiérarchiques</h3>
<table>
<thead>
<tr>
<th>Signal</th>
<th>Direction</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>GND</code></td>
<td><span class="badge" style="background:#f0f0f0">— Passive</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>PB0-D8</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>PB1-D9~</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>PB2-D10~</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>PB3-D11-(SPI_MISO)~</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>PB4-D12-(SPI_MOSI)</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>PB5-D13-(SPI_SCK)</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>PC0-A0</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>PC1-A1</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>PC2-A2</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>PC3-A3</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>PC4-A4-(I2C_SDA)</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>PC5-A5-(I2C_SCL)</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>PD0-D0-(UART_RX)</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>PD1-D1-(UART_TX)</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>PD2-D2-(INT0)</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>PD3-D3-(INT1)~</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>PD4-D4</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>PD5-D5~</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>PD6-D6~</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>PD7-D7</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>VCC</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>{I2C}</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>{SPI}</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>{UART}</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>~{RESET}/PC6</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
</tbody>
</table>
<h3 class="section-label">Composants</h3>
<table>
<thead>
<tr>
<th>Réf.</th>
<th>Valeur</th>
<th>Description</th>
<th>Boîtier</th>
<th>Variantes</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>C1</code></td>
<td><strong>10uF</strong></td>
<td>—</td>
<td><small>C_Radial_D5.0mm_H11.0mm_P2.00mm</small></td>
<td>—</td>
</tr>
<tr class="dnp">
<td><code>C3 <span class="dnp-badge">DNP</span></code></td>
<td><strong>22pF - disc</strong></td>
<td>—</td>
<td><small>C_Disc_D4.3mm_W1.9mm_P5.00mm</small></td>
<td>—</td>
</tr>
<tr class="dnp">
<td><code>C7 <span class="dnp-badge">DNP</span></code></td>
<td><strong>22pF - disc</strong></td>
<td>—</td>
<td><small>C_Disc_D4.3mm_W1.9mm_P5.00mm</small></td>
<td>—</td>
</tr>
<tr>
<td><code>J1</code></td>
<td><strong>Conn_02x05_Odd_Even</strong></td>
<td>—</td>
<td><small>PinHeader_2x05_P2.54mm_Vertical</small></td>
<td>—</td>
</tr>
<tr>
<td><code>J2</code></td>
<td><strong>Conn_02x04_Odd_Even</strong></td>
<td>—</td>
<td><small>PinHeader_2x04_P2.54mm_Vertical</small></td>
<td>—</td>
</tr>
<tr>
<td><code>J3</code></td>
<td><strong>Conn_02x06_Odd_Even</strong></td>
<td>—</td>
<td><small>PinHeader_2x06_P2.54mm_Vertical</small></td>
<td>—</td>
</tr>
<tr>
<td><code>J4</code></td>
<td><strong>Conn_02x06_Odd_Even</strong></td>
<td>—</td>
<td><small>PinHeader_2x06_P2.54mm_Vertical</small></td>
<td>—</td>
</tr>
<tr>
<td><code>R3</code></td>
<td><strong>4.7k</strong></td>
<td>—</td>
<td><small>R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal</small></td>
<td>—</td>
</tr>
<tr>
<td><code>R12</code></td>
<td><strong>4.7k</strong></td>
<td>—</td>
<td><small>R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal</small></td>
<td>—</td>
</tr>
<tr>
<td><code>U1</code></td>
<td><strong>ATmega328P-P</strong></td>
<td>—</td>
<td><small>DIP-28_W7.62mm_Socket</small></td>
<td>—</td>
</tr>
<tr class="dnp">
<td><code>Y3 <span class="dnp-badge">DNP</span></code></td>
<td><strong>Crystal HC49-4H 12MHz</strong></td>
<td>—</td>
<td><small>Crystal_HC49-4H_Vertical</small></td>
<td>—</td>
</tr>
</tbody>
</table>
</section>
</div><div id="nrf24">
<section>
<h2>NRF24 <span class="filename">NRF24.kicad_sch</span></h2>
<h3 class="section-label">Signaux hiérarchiques</h3>
<table>
<thead>
<tr>
<th>Signal</th>
<th>Direction</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>+3.3V</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>CE</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>CSN</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>GND</code></td>
<td><span class="badge" style="background:#f0f0f0">— Passive</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>MISO</code></td>
<td><span class="badge" style="background:#d4f7d4">← Output</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>MOSI</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>SCK</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
</tbody>
</table>
<h3 class="section-label">Composants</h3>
<table>
<thead>
<tr>
<th>Réf.</th>
<th>Valeur</th>
<th>Description</th>
<th>Boîtier</th>
<th>Variantes</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>U6</code></td>
<td><strong>~</strong></td>
<td>—</td>
<td><small>nRF24L01_Virtual</small></td>
<td>—</td>
</tr>
<tr>
<td><code>U7</code></td>
<td><strong>SSW-104-02-G-D</strong></td>
<td>—</td>
<td><small>nRF24L01_Breakout</small></td>
<td>—</td>
</tr>
</tbody>
</table>
</section>
</div><div id="oled">
<section>
<h2>OLED <span class="filename">OLED.kicad_sch</span></h2>
<h3 class="section-label">Signaux hiérarchiques</h3>
<table>
<thead>
<tr>
<th>Signal</th>
<th>Direction</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>GND</code></td>
<td><span class="badge" style="background:#f0f0f0">— Passive</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>VCC</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>{I2C}</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
</tbody>
</table>
<h3 class="section-label">Composants</h3>
<table>
<thead>
<tr>
<th>Réf.</th>
<th>Valeur</th>
<th>Description</th>
<th>Boîtier</th>
<th>Variantes</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>J8</code></td>
<td><strong>61300411821</strong></td>
<td>—</td>
<td><small>PinSocket_1x04_P2.54mm_Vertical</small></td>
<td>—</td>
</tr>
<tr>
<td><code>J17</code></td>
<td><strong>JST_PH_4P</strong></td>
<td>—</td>
<td><small>JST_PH_B4B-PH-K_1x04_P2.00mm_Vertical</small></td>
<td>—</td>
</tr>
<tr>
<td><code>OLED2</code></td>
<td><strong>~</strong></td>
<td>—</td>
<td><small>SSD1306_OLED_Display_VIRTUAL_128_64</small></td>
<td>—</td>
</tr>
</tbody>
</table>
</section>
</div><div id="power">
<section>
<h2>Power <span class="filename">Power.kicad_sch</span></h2>
<h3 class="section-label">Signaux hiérarchiques</h3>
<table>
<thead>
<tr>
<th>Signal</th>
<th>Direction</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>+3.3V</code></td>
<td><span class="badge" style="background:#d4f7d4">← Output</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>+5V_{IN}</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>GND</code></td>
<td><span class="badge" style="background:#f0f0f0">— Passive</span></td>
<td class="no-doc">pas de doc</td>
</tr>
</tbody>
</table>
<h3 class="section-label">Composants</h3>
<table>
<thead>
<tr>
<th>Réf.</th>
<th>Valeur</th>
<th>Description</th>
<th>Boîtier</th>
<th>Variantes</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>C8</code></td>
<td><strong>10uF</strong></td>
<td>—</td>
<td><small>C_Radial_D5.0mm_H11.0mm_P2.00mm</small></td>
<td>—</td>
</tr>
<tr>
<td><code>C11</code></td>
<td><strong>10uF</strong></td>
<td>—</td>
<td><small>C_Radial_D5.0mm_H11.0mm_P2.00mm</small></td>
<td>—</td>
</tr>
<tr>
<td><code>D2</code></td>
<td><strong>LED</strong></td>
<td>—</td>
<td><small>LED_D5.0mm</small></td>
<td>—</td>
</tr>
<tr>
<td><code>JP7</code></td>
<td><strong>Jumper</strong></td>
<td>—</td>
<td><small>PinHeader_1x02_P2.54mm_Vertical</small></td>
<td>—</td>
</tr>
<tr>
<td><code>R26</code></td>
<td><strong>270</strong></td>
<td>—</td>
<td><small>R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal</small></td>
<td>—</td>
</tr>
<tr>
<td><code>U2</code></td>
<td><strong>AMS1117-3.3</strong></td>
<td>—</td>
<td><small>SOT-223-3_TabPin2</small></td>
<td>—</td>
</tr>
</tbody>
</table>
</section>
</div><div id="power_handler">
<section>
<h2>Power_Handler <span class="filename">Power_Handler.kicad_sch</span></h2>
<h3 class="section-label">Signaux hiérarchiques</h3>
<table>
<thead>
<tr>
<th>Signal</th>
<th>Direction</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>ENABLE</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>GND</code></td>
<td><span class="badge" style="background:#f0f0f0">— Passive</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>V_{IN}</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>V_{OUT}</code></td>
<td><span class="badge" style="background:#d4f7d4">← Output</span></td>
<td class="no-doc">pas de doc</td>
</tr>
</tbody>
</table>
<h3 class="section-label">Composants</h3>
<table>
<thead>
<tr>
<th>Réf.</th>
<th>Valeur</th>
<th>Description</th>
<th>Boîtier</th>
<th>Variantes</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>Q4</code></td>
<td><strong>FDS4559</strong></td>
<td>—</td>
<td><small>SOIC-8_3.9x4.9mm_P1.27mm</small></td>
<td>—</td>
</tr>
<tr>
<td><code>R16</code></td>
<td><strong>10k</strong></td>
<td>—</td>
<td><small>R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal</small></td>
<td>—</td>
</tr>
<tr>
<td><code>R28</code></td>
<td><strong>10k</strong></td>
<td>—</td>
<td><small>R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal</small></td>
<td>—</td>
</tr>
</tbody>
</table>
</section>
</div><div id="programming">
<section>
<h2>Programming <span class="filename">Programming.kicad_sch</span></h2>
<h3 class="section-label">Signaux hiérarchiques</h3>
<table>
<thead>
<tr>
<th>Signal</th>
<th>Direction</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>+5V_USB</code></td>
<td><span class="badge" style="background:#d4f7d4">← Output</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>DTR</code></td>
<td><span class="badge" style="background:#d4f7d4">← Output</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>GND</code></td>
<td><span class="badge" style="background:#f0f0f0">— Passive</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>{UART}</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
</tbody>
</table>
<h3 class="section-label">Composants</h3>
<table>
<thead>
<tr>
<th>Réf.</th>
<th>Valeur</th>
<th>Description</th>
<th>Boîtier</th>
<th>Variantes</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>C2</code></td>
<td><strong>100nF</strong></td>
<td>—</td>
<td><small>C_0603_1608Metric</small></td>
<td>—</td>
</tr>
<tr>
<td><code>C9</code></td>
<td><strong>22pF - disc</strong></td>
<td>—</td>
<td><small>C_Disc_D4.3mm_W1.9mm_P5.00mm</small></td>
<td>—</td>
</tr>
<tr>
<td><code>C10</code></td>
<td><strong>22pF - disc</strong></td>
<td>—</td>
<td><small>C_Disc_D4.3mm_W1.9mm_P5.00mm</small></td>
<td>—</td>
</tr>
<tr>
<td><code>C19</code></td>
<td><strong>100nF</strong></td>
<td>—</td>
<td><small>C_0603_1608Metric</small></td>
<td>—</td>
</tr>
<tr>
<td><code>J7</code></td>
<td><strong>Conn_01x04_Pin</strong></td>
<td>—</td>
<td><small>PinHeader_1x04_P2.54mm_Vertical</small></td>
<td>—</td>
</tr>
<tr>
<td><code>R20</code></td>
<td><strong>10k</strong></td>
<td>—</td>
<td><small>R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal</small></td>
<td>—</td>
</tr>
<tr>
<td><code>R21</code></td>
<td><strong>10k</strong></td>
<td>—</td>
<td><small>R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal</small></td>
<td>—</td>
</tr>
<tr>
<td><code>U10</code></td>
<td><strong>CH340G</strong></td>
<td>—</td>
<td><small>SOIC-16_3.9x9.9mm_P1.27mm</small></td>
<td>—</td>
</tr>
<tr>
<td><code>Y2</code></td>
<td><strong>Crystal HC49-4H 12 MHz</strong></td>
<td>—</td>
<td><small>Crystal_HC49-4H_Vertical</small></td>
<td>—</td>
</tr>
</tbody>
</table>
</section>
</div><div id="rtc">
<section>
<h2>RTC <span class="filename">RTC.kicad_sch</span></h2>
<h3 class="section-label">Signaux hiérarchiques</h3>
<table>
<thead>
<tr>
<th>Signal</th>
<th>Direction</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>GND</code></td>
<td><span class="badge" style="background:#f0f0f0">— Passive</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>VCC</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>{I2C}</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>~{WAKE-UP}</code></td>
<td><span class="badge" style="background:#d4f7d4">← Output</span></td>
<td class="no-doc">pas de doc</td>
</tr>
</tbody>
</table>
<h3 class="section-label">Composants</h3>
<table>
<thead>
<tr>
<th>Réf.</th>
<th>Valeur</th>
<th>Description</th>
<th>Boîtier</th>
<th>Variantes</th>
</tr>
</thead>
<tbody>
<tr class="dnp">
<td><code>BT3 <span class="dnp-badge">DNP</span></code></td>
<td><strong>Battery_Cell</strong></td>
<td>—</td>
<td><small>MPD_BC501SM-TR</small></td>
<td>—</td>
</tr>
<tr>
<td><code>U3</code></td>
<td><strong>DS3231M</strong></td>
<td>—</td>
<td><small>SOIC-16W_7.5x10.3mm_P1.27mm</small></td>
<td>—</td>
</tr>
</tbody>
</table>
</section>
</div><div id="reset">
<section>
<h2>Reset <span class="filename">Reset.kicad_sch</span></h2>
<h3 class="section-label">Signaux hiérarchiques</h3>
<table>
<thead>
<tr>
<th>Signal</th>
<th>Direction</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>GND</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>RESET</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>VCC</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
</tbody>
</table>
<h3 class="section-label">Composants</h3>
<table>
<thead>
<tr>
<th>Réf.</th>
<th>Valeur</th>
<th>Description</th>
<th>Boîtier</th>
<th>Variantes</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>R13</code></td>
<td><strong>100k</strong></td>
<td>—</td>
<td><small>R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal</small></td>
<td>—</td>
</tr>
<tr>
<td><code>SW1</code></td>
<td><strong>DTS-62N-V</strong></td>
<td>—</td>
<td><small>SW_PUSH_6mm_H8mm</small></td>
<td>—</td>
</tr>
</tbody>
</table>
</section>
</div><div id="temperature_sun">
<section>
<h2>Temperature_Sun <span class="filename">Temperature_Sun.kicad_sch</span></h2>
<h3 class="section-label">Signaux hiérarchiques</h3>
<table>
<thead>
<tr>
<th>Signal</th>
<th>Direction</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>+3.3V</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>GND</code></td>
<td><span class="badge" style="background:#f0f0f0">— Passive</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>{I2C}</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
</tbody>
</table>
<h3 class="section-label">Composants</h3>
<table>
<thead>
<tr>
<th>Réf.</th>
<th>Valeur</th>
<th>Description</th>
<th>Boîtier</th>
<th>Variantes</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>J19</code></td>
<td><strong>Screw_Terminal_01x04</strong></td>
<td>—</td>
<td><small>TerminalBlock_Phoenix_MKDS-1,5-4_1x04_P5.00mm_Horizontal</small></td>
<td>—</td>
</tr>
</tbody>
</table>
</section>
</div><div id="translator">
<section>
<h2>Translator <span class="filename">Translator.kicad_sch</span></h2>
<h3 class="section-label">Signaux hiérarchiques</h3>
<table>
<thead>
<tr>
<th>Signal</th>
<th>Direction</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>GND</code></td>
<td><span class="badge" style="background:#f0f0f0">— Passive</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>IN</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>OUT</code></td>
<td><span class="badge" style="background:#d4f7d4">← Output</span></td>
<td class="no-doc">pas de doc</td>
</tr>
</tbody>
</table>
<h3 class="section-label">Composants</h3>
<table>
<thead>
<tr>
<th>Réf.</th>
<th>Valeur</th>
<th>Description</th>
<th>Boîtier</th>
<th>Variantes</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>R34</code></td>
<td><strong>10k</strong></td>
<td>—</td>
<td><small>R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal</small></td>
<td>—</td>
</tr>
<tr>
<td><code>R35</code></td>
<td><strong>10k</strong></td>
<td>—</td>
<td><small>R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal</small></td>
<td>—</td>
</tr>
</tbody>
</table>
</section>
</div><div id="user_buttons">
<section>
<h2>User_Buttons <span class="filename">User_Buttons.kicad_sch</span></h2>
<h3 class="section-label">Signaux hiérarchiques</h3>
<table>
<thead>
<tr>
<th>Signal</th>
<th>Direction</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>GND</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>SELF_TEST</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>VCC</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
</tbody>
</table>
<h3 class="section-label">Composants</h3>
<table>
<thead>
<tr>
<th>Réf.</th>
<th>Valeur</th>
<th>Description</th>
<th>Boîtier</th>
<th>Variantes</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>J30</code></td>
<td><strong>KF128-2.54_2P</strong></td>
<td>—</td>
<td><small>TerminalBlock_Phoenix_MPT-0,5-2-2.54_1x02_P2.54mm_Horizontal</small></td>
<td>—</td>
</tr>
<tr>
<td><code>R33</code></td>
<td><strong>10k</strong></td>
<td>—</td>
<td><small>R_0603_1608Metric</small></td>
<td>—</td>
</tr>
<tr>
<td><code>SW2</code></td>
<td><strong>PB_SMD_12V_50MA_6MM_6MM</strong></td>
<td>—</td>
<td><small>SW_Push_1P1T_NO_CK_KSC7xxJ</small></td>
<td>—</td>
</tr>
</tbody>
</table>
</section>
</div><div id="wind">
<section>
<h2>WIND <span class="filename">WIND.kicad_sch</span></h2>
<h3 class="section-label">Signaux hiérarchiques</h3>
<table>
<thead>
<tr>
<th>Signal</th>
<th>Direction</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>+3.3V</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>ANEMO</code></td>
<td><span class="badge" style="background:#d4f7d4">← Output</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>BUZZER</code></td>
<td><span class="badge" style="background:#d4f7d4">← Output</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>GIROUETTE</code></td>
<td><span class="badge" style="background:#d4f7d4">← Output</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>GND</code></td>
<td><span class="badge" style="background:#f0f0f0">— Passive</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>RAIN</code></td>
<td><span class="badge" style="background:#d4f7d4">← Output</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>VCC_Rain</code></td>
<td><span class="badge" style="background:#d0e8ff">→ Input</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>Wind_interrupt</code></td>
<td><span class="badge" style="background:#d4f7d4">← Output</span></td>
<td class="no-doc">pas de doc</td>
</tr>
</tbody>
</table>
<h3 class="section-label">Composants</h3>
<table>
<thead>
<tr>
<th>Réf.</th>
<th>Valeur</th>
<th>Description</th>
<th>Boîtier</th>
<th>Variantes</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>C4</code></td>
<td><strong>100nF</strong></td>
<td>—</td>
<td><small>C_0603_1608Metric</small></td>
<td>—</td>
</tr>
<tr>
<td><code>C5</code></td>
<td><strong>10µF</strong></td>
<td>—</td>
<td><small>C_Radial_D5.0mm_H11.0mm_P2.00mm</small></td>
<td>—</td>
</tr>
<tr>
<td><code>C6</code></td>
<td><strong>100nF</strong></td>
<td>—</td>
<td><small>C_0603_1608Metric</small></td>
<td>—</td>
</tr>
<tr>
<td><code>D1</code></td>
<td><strong>LED</strong></td>
<td>—</td>
<td><small>LED_D5.0mm</small></td>
<td>—</td>
</tr>
<tr>
<td><code>J5</code></td>
<td><strong>Screw_Terminal_01x06</strong></td>
<td>—</td>
<td><small>TerminalBlock_Phoenix_MKDS-1,5-6_1x06_P5.00mm_Horizontal</small></td>
<td>—</td>
</tr>
<tr>
<td><code>J6</code></td>
<td><strong>Conn_01x03_Pin</strong></td>
<td>—</td>
<td><small>PinHeader_1x03_P2.54mm_Vertical</small></td>
<td>—</td>
</tr>
<tr>
<td><code>J9</code></td>
<td><strong>KF301-5.0-2P</strong></td>
<td>—</td>
<td><small>TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal</small></td>
<td>—</td>
</tr>
<tr>
<td><code>JP2</code></td>
<td><strong>Jumper</strong></td>
<td>—</td>
<td><small>PinHeader_1x02_P2.54mm_Vertical</small></td>
<td>—</td>
</tr>
<tr>
<td><code>JP3</code></td>
<td><strong>60900213421</strong></td>
<td>—</td>
<td><small>Jumper_2.54mm_blue</small></td>
<td>—</td>
</tr>
<tr>
<td><code>JP4</code></td>
<td><strong>60900213421</strong></td>
<td>—</td>
<td><small>Jumper_2.54mm_blue</small></td>
<td>—</td>
</tr>
<tr>
<td><code>JP6</code></td>
<td><strong>Jumper</strong></td>
<td>—</td>
<td><small>PinHeader_1x02_P2.54mm_Vertical</small></td>
<td>—</td>
</tr>
<tr>
<td><code>Q5</code></td>
<td><strong>2N7000_THT</strong></td>
<td>—</td>
<td><small>TO-92_Inline</small></td>
<td>—</td>
</tr>
<tr>
<td><code>R5</code></td>
<td><strong>100k</strong></td>
<td>—</td>
<td><small>R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal</small></td>
<td>—</td>
</tr>
<tr>
<td><code>R6</code></td>
<td><strong>10k</strong></td>
<td>—</td>
<td><small>R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal</small></td>
<td>—</td>
</tr>
<tr>
<td><code>R7</code></td>
<td><strong>10k</strong></td>
<td>—</td>
<td><small>R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal</small></td>
<td>—</td>
</tr>
<tr>
<td><code>R8</code></td>
<td><strong>10k</strong></td>
<td>—</td>
<td><small>R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal</small></td>
<td>—</td>
</tr>
<tr>
<td><code>R9</code></td>
<td><strong>270</strong></td>
<td>—</td>
<td><small>R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal</small></td>
<td>—</td>
</tr>
<tr>
<td><code>R10</code></td>
<td><strong>10k</strong></td>
<td>—</td>
<td><small>R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal</small></td>
<td>—</td>
</tr>
<tr>
<td><code>R11</code></td>
<td><strong>10k</strong></td>
<td>—</td>
<td><small>R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal</small></td>
<td>—</td>
</tr>
<tr>
<td><code>R24</code></td>
<td><strong>10k</strong></td>
<td>—</td>
<td><small>R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal</small></td>
<td>—</td>
</tr>
<tr>
<td><code>R25</code></td>
<td><strong>100k</strong></td>
<td>—</td>
<td><small>R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal</small></td>
<td>—</td>
</tr>
<tr>
<td><code>RV1</code></td>
<td><strong>R_Potentiometer</strong></td>
<td>—</td>
<td><small>Potentiometer_Bourns_3266Y_Vertical</small></td>
<td>—</td>
</tr>
<tr>
<td><code>SW2</code></td>
<td><strong>DTS-62N-V</strong></td>
<td>—</td>
<td><small>SW_PUSH_6mm_H8mm</small></td>
<td>—</td>
</tr>
<tr>
<td><code>T9</code></td>
<td><strong>TP</strong></td>
<td>—</td>
<td><small>TestPoint_Pad_D1.0mm</small></td>
<td>—</td>
</tr>
<tr>
<td><code>T10</code></td>
<td><strong>TP</strong></td>
<td>—</td>
<td><small>TestPoint_Pad_D1.0mm</small></td>
<td>—</td>
</tr>
<tr>
<td><code>T11</code></td>
<td><strong>TP</strong></td>
<td>—</td>
<td><small>TestPoint_Pad_D1.0mm</small></td>
<td>—</td>
</tr>
<tr>
<td><code>U4</code></td>
<td><strong>LM358</strong></td>
<td>—</td>
<td><small>DIP-8_W7.62mm</small></td>
<td>—</td>
</tr>
<tr>
<td><code>U5</code></td>
<td><strong>74HC123</strong></td>
<td>—</td>
<td><small>DIP-16_W7.62mm_Socket</small></td>
<td>—</td>
</tr>
</tbody>
</table>
</section>
</div><div id="xtal">
<section>
<h2>Xtal <span class="filename">Xtal.kicad_sch</span></h2>
<h3 class="section-label">Signaux hiérarchiques</h3>
<table>
<thead>
<tr>
<th>Signal</th>
<th>Direction</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>GND</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>XTAl_1</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
<tr>
<td><code>XTAl_2</code></td>
<td><span class="badge" style="background:#fff3cd">⇄ Bidirectional</span></td>
<td class="no-doc">pas de doc</td>
</tr>
</tbody>
</table>
<h3 class="section-label">Composants</h3>
<table>
<thead>
<tr>
<th>Réf.</th>
<th>Valeur</th>
<th>Description</th>
<th>Boîtier</th>
<th>Variantes</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>C7</code></td>
<td><strong>22pF</strong></td>
<td>—</td>
<td><small>C_Disc_D4.7mm_W2.5mm_P5.00mm</small></td>
<td>—</td>
</tr>
<tr>
<td><code>C8</code></td>
<td><strong>22pF</strong></td>
<td>—</td>
<td><small>C_Disc_D4.7mm_W2.5mm_P5.00mm</small></td>
<td>—</td>
</tr>
<tr>
<td><code>Y1</code></td>
<td><strong>16MHz</strong></td>
<td>—</td>
<td><small>Crystal_HC49-4H_Vertical</small></td>
<td>—</td>
</tr>
</tbody>
</table>
</section>
</div>
</main>
<script>
// Gestion du thème clair/sombre
function initTheme() {
const savedTheme = localStorage.getItem('theme');
if (savedTheme === 'dark') {
document.body.classList.add('dark-theme');
updateThemeButton(true);
} else {
document.body.classList.remove('dark-theme');
updateThemeButton(false);
}
}
function updateThemeButton(isDark) {
const btn = document.getElementById('theme-toggle-btn');
if (btn) {
if (isDark) {
btn.innerHTML = '☀️ Thème clair';
} else {
btn.innerHTML = '🌙 Thème sombre';
}
}
}
function toggleTheme() {
if (document.body.classList.contains('dark-theme')) {
document.body.classList.remove('dark-theme');
localStorage.setItem('theme', 'light');
updateThemeButton(false);
} else {
document.body.classList.add('dark-theme');
localStorage.setItem('theme', 'dark');
updateThemeButton(true);
}
}
// Initialiser le thème au chargement
initTheme();
// ── Recherche globale (composants + signaux) ──────────────────────────
function escapeRegex(str) {
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
}
function clearHighlights(root) {
root.querySelectorAll('mark.search-hit').forEach(mark => {
const parent = mark.parentNode;
parent.replaceChild(document.createTextNode(mark.textContent), mark);
parent.normalize();
});
}
function highlightMatches(cell, rawQuery) {
const regex = new RegExp('(' + escapeRegex(rawQuery) + ')', 'ig');
const walker = document.createTreeWalker(cell, NodeFilter.SHOW_TEXT, null);
const textNodes = [];
let node;
while ((node = walker.nextNode())) textNodes.push(node);
textNodes.forEach(textNode => {
const text = textNode.nodeValue;
regex.lastIndex = 0;
if (!regex.test(text)) return;
regex.lastIndex = 0;
const span = document.createElement('span');
span.innerHTML = text.replace(regex, '<mark class="search-hit">$1</mark>');
const parent = textNode.parentNode;
parent.replaceChild(span, textNode);
while (span.firstChild) parent.insertBefore(span.firstChild, span);
parent.removeChild(span);
});
}
function applyGlobalSearch(rawQuery) {
const query = rawQuery.trim();
const q = query.toLowerCase();
const sections = document.querySelectorAll('#main section');
const sheetsWithMatches = new Set();
let totalMatches = 0;
sections.forEach(section => {
clearHighlights(section);
const rows = section.querySelectorAll('tbody tr');
let sectionMatches = 0;
rows.forEach(row => {
if (!q) {
row.style.display = '';
return;
}
const isMatch = row.textContent.toLowerCase().includes(q);
row.style.display = isMatch ? '' : 'none';
if (isMatch) {
sectionMatches++;
totalMatches++;
row.querySelectorAll('td').forEach(td => highlightMatches(td, query));
}
});
if (q && rows.length) {
section.style.display = sectionMatches > 0 ? '' : 'none';
if (sectionMatches > 0) {
const host = section.closest('[id]');
if (host && host.id) sheetsWithMatches.add(host.id);
}
} else {
section.style.display = '';
}
});
document.querySelectorAll('.nav-sheet-link').forEach(link => {
const anchor = link.getAttribute('href').slice(1);
link.classList.toggle('nav-dim', !!q && !sheetsWithMatches.has(anchor));
});
const counter = document.getElementById('search-results-count');
if (counter) {
counter.textContent = q ? `${totalMatches} résultat(s)` : '';
}
}
function initGlobalSearch() {
const input = document.getElementById('global-search');
if (!input) return;
input.addEventListener('input', () => applyGlobalSearch(input.value));
document.addEventListener('keydown', (e) => {
const tag = document.activeElement ? document.activeElement.tagName : '';
if (e.key === '/' && tag !== 'INPUT' && tag !== 'TEXTAREA') {
e.preventDefault();
input.focus();
} else if (e.key === 'Escape' && document.activeElement === input) {
input.value = '';
applyGlobalSearch('');
input.blur();
}
});
}
initGlobalSearch();
</script>
</body>
</html>