feat: add SEO and sitemap functionality

- Implemented robots.txt to guide search engine indexing.
- Created layout components for the selector and series pages to manage metadata.
- Developed a dynamic sitemap generator based on existing series and frameworks data.
- Centralized SEO information in a new lib/seo.js file to maintain consistency across the site.
- Added SVG logos for branding.
This commit is contained in:
Lucas Rayan committed 2026-08-23 11:16:13 -03:00
1 parent 3de4f2501d
commit 37971056c2
74 files changed
+563 -41337

No files matched your search

+17
View File
@@ -0,0 +1,17 @@
import { paginaMeta } from "@/lib/seo";
/**
* A página desta rota é um client component, e client component não pode
* exportar metadata. Sem este layout, ela herdaria o título genérico do site,
* e o Google veria várias páginas com o mesmo título e a mesma descrição.
*/
export const metadata = paginaMeta({
titulo: "Catálogo de placas ESP32",
descricao: "Placas de desenvolvimento com ESP32 disponíveis no Brasil, com filtro por série, conector e conversor USB-serial.",
caminho: "/catalogo",
keywords: ["placas ESP32", "DevKit ESP32", "comprar ESP32", "ESP32 DevKitC"],
});
export default function Layout({ children }) {
return children;
}
+17
View File
@@ -0,0 +1,17 @@
import { paginaMeta } from "@/lib/seo";
/**
* A página desta rota é um client component, e client component não pode
* exportar metadata. Sem este layout, ela herdaria o título genérico do site,
* e o Google veria várias páginas com o mesmo título e a mesma descrição.
*/
export const metadata = paginaMeta({
titulo: "Comparar séries ESP32",
descricao: "Compare até quatro séries de ESP32 lado a lado: processador, Wi-Fi, Bluetooth, memória, GPIO, periféricos e segurança em hardware, com os dados dos datasheets oficiais.",
caminho: "/comparacao",
keywords: ["comparar ESP32", "ESP32 vs ESP32-S3", "tabela comparativa ESP32", "qual ESP32 é melhor"],
});
export default function Layout({ children }) {
return children;
}
+14 -3
View File
@@ -1,3 +1,4 @@
import { paginaMeta } from "@/lib/seo";
import Link from "next/link"; import Link from "next/link";
import Header from "@/components/Header"; import Header from "@/components/Header";
import Footer from "@/components/Footer"; import Footer from "@/components/Footer";
@@ -261,12 +262,22 @@ export async function generateMetadata({ params }) {
const framework = frameworksData[key]; const framework = frameworksData[key];
if (!framework) { if (!framework) {
return { title: "Framework não encontrado" }; return { title: "Framework não encontrado", robots: { index: false, follow: false } };
} }
return { return {
title: `ESPDocs - ${framework.nome_completo}`, ...paginaMeta({
description: framework.descricao, titulo: `${framework.nome} para ESP32`,
descricao: `${framework.nome_completo}: ${framework.descricao} Guia em português com exemplo de código e quando usar.`,
caminho: `/frameworks/${encodeURIComponent(key)}`,
tipo: "article",
keywords: [
framework.nome, framework.nome_completo,
`${framework.nome} ESP32`, `programar ESP32 com ${framework.nome}`,
"ESP32", "framework ESP32",
],
}),
other: { "article:section": "Frameworks" },
}; };
} }
+9
View File
@@ -1,3 +1,4 @@
import { paginaMeta } from "@/lib/seo";
import Header from "@/components/Header"; import Header from "@/components/Header";
import Footer from "@/components/Footer"; import Footer from "@/components/Footer";
import Link from "next/link"; import Link from "next/link";
@@ -19,6 +20,14 @@ import {
Home Home
} from "lucide-react"; } from "lucide-react";
export const metadata = paginaMeta({
titulo: "Frameworks para ESP32",
descricao: "ESP-IDF, Arduino, MicroPython, ESP-ADF, ESP-DSP, ESP-WHO, ESP-NN e ESP-Matter: para que serve cada framework do ESP32, com exemplo de código e quando usar.",
caminho: "/frameworks",
keywords: ["ESP-IDF", "Arduino ESP32", "MicroPython ESP32", "frameworks ESP32", "programar ESP32"],
});
export default function Frameworks() { export default function Frameworks() {
const frameworks = Object.entries(frameworksData); const frameworks = Object.entries(frameworksData);
+15 -4
View File
@@ -1,11 +1,15 @@
import { paginaMeta, jsonLd } from "@/lib/seo";
import Header from "@/components/Header"; import Header from "@/components/Header";
import Footer from "@/components/Footer"; import Footer from "@/components/Footer";
import Link from "next/link"; import Link from "next/link";
export const metadata = {
title: "ESPDocs - Glossário Técnico", export const metadata = paginaMeta({
description: "Glossário técnico em português com termos e conceitos do ecossistema ESP32", titulo: "Glossário técnico do ESP32",
}; descricao: "Mais de 40 termos do ecossistema ESP32 explicados em português: GPIO, strapping, ULP, PSRAM, eFuse, deep sleep, OTA, Secure Boot, ECDSA, TWAI, Matter e Thread.",
caminho: "/glossario",
keywords: ["glossário ESP32", "o que é GPIO", "o que é strapping", "o que é ULP", "termos ESP32"],
});
export default function Glossario() { export default function Glossario() {
const categorias = [ const categorias = [
@@ -364,6 +368,13 @@ export default function Glossario() {
return ( return (
<div className="min-h-screen bg-linear-to-br from-slate-100 via-slate-50 to-purple-100/40 dark:from-slate-950 dark:via-slate-950 dark:to-slate-900 transition-colors"> <div className="min-h-screen bg-linear-to-br from-slate-100 via-slate-50 to-purple-100/40 dark:from-slate-950 dark:via-slate-950 dark:to-slate-900 transition-colors">
{/* Cada verbete vira um DefinedTerm: ajuda o Google a responder
buscas do tipo "o que é strapping ESP32" apontando para cá. */}
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd.glossario(categorias)) }}
/>
<Header /> <Header />
<main id="conteudo" className="px-4 pt-16 pb-20 max-w-7xl mx-auto"> <main id="conteudo" className="px-4 pt-16 pb-20 max-w-7xl mx-auto">
+29
View File
@@ -0,0 +1,29 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="ESPDocs">
<title>ESPDocs</title>
<defs>
<linearGradient id="g" x1="6" y1="58" x2="58" y2="6" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#3b82f6"/>
<stop offset="0.55" stop-color="#8b5cf6"/>
<stop offset="1" stop-color="#ec4899"/>
</linearGradient>
</defs>
<!-- Pinos entrando pela esquerda: o sinal que chega do silício. -->
<g stroke="url(#g)" stroke-width="3.4" stroke-linecap="round">
<path d="M2 21h7"/>
<path d="M2 32h7"/>
<path d="M2 43h7"/>
</g>
<!-- Corpo do encapsulamento. -->
<rect x="9.25" y="9.25" width="45.5" height="45.5" rx="13"
fill="none" stroke="url(#g)" stroke-width="4.5"/>
<!-- Os mesmos três níveis viram linhas de texto: a documentação.
Comprimento decrescente para ler como parágrafo. -->
<g stroke="url(#g)" stroke-width="4.5" stroke-linecap="round">
<path d="M19 21h26"/>
<path d="M19 32h21"/>
<path d="M19 43h15"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

+76 -5
View File
@@ -1,28 +1,99 @@
import { Outfit, Inter } from "next/font/google"; import { Outfit, Inter } from "next/font/google";
import "./globals.css"; import "./globals.css";
import Providers from "@/components/Providers"; import Providers from "@/components/Providers";
import { SITE, jsonLd } from "@/lib/seo";
const outfit = Outfit({ const outfit = Outfit({
subsets: ["latin"], subsets: ["latin"],
variable: "--font-outfit", variable: "--font-outfit",
display: "swap", display: "swap",
}); });
const inter = Inter({ const inter = Inter({
subsets: ["latin"], subsets: ["latin"],
variable: "--font-inter", variable: "--font-inter",
display: "swap", display: "swap",
}); });
export const metadata = { export const metadata = {
title: "ESPDocs", // metadataBase é o que transforma caminhos relativos em URLs absolutas nas
description: "Documentação não oficial do ESP32 em português.", // tags canonical e og:image. Sem ele, o Google recebe og:image quebrado.
authors: { name: "Lucas Rayan Guerra", url: "https://cienciaembarcada.com.br" }, metadataBase: new URL(SITE.url),
title: {
default: "ESPDocs · Documentação do ESP32 em português",
// Cada página fornece só o próprio nome; o sufixo entra automaticamente.
template: "%s · ESPDocs",
},
description:
"Especificações, pinagem, comparação e seleção das 12 séries de microcontroladores ESP32, em português brasileiro. Datasheets, periféricos, segurança em hardware e diagramas de conexão.",
applicationName: "ESPDocs",
authors: [{ name: "Lucas Rayan Guerra", url: "https://lucasrguerra.dev.br" }],
creator: "Lucas Rayan Guerra",
publisher: "Ciência Embarcada",
category: "technology",
keywords: [
"ESP32", "ESP32 português", "documentação ESP32", "pinout ESP32",
"ESP32-S3", "ESP32-C3", "ESP32-C6", "ESP32-P4", "ESP32-H2",
"comparar ESP32", "qual ESP32 escolher", "datasheet ESP32",
"microcontrolador", "Espressif", "ESP-IDF", "IoT", "sistemas embarcados",
],
alternates: { canonical: "/" },
openGraph: {
type: "website",
locale: "pt_BR",
url: SITE.url,
siteName: "ESPDocs",
title: "ESPDocs · Documentação do ESP32 em português",
description:
"Especificações, pinagem, comparação e seleção das 12 séries de microcontroladores ESP32, em português brasileiro.",
},
twitter: {
card: "summary_large_image",
title: "ESPDocs · Documentação do ESP32 em português",
description:
"Especificações, pinagem, comparação e seleção das 12 séries de ESP32, em português.",
},
robots: {
index: true,
follow: true,
googleBot: {
index: true,
follow: true,
"max-image-preview": "large",
"max-snippet": -1,
"max-video-preview": -1,
},
},
icons: { icon: "/logo.png", apple: "/logo.png" },
formatDetection: { telephone: false, address: false, email: false },
};
export const viewport = {
themeColor: [
{ media: "(prefers-color-scheme: light)", color: "#f8fafc" },
{ media: "(prefers-color-scheme: dark)", color: "#020617" },
],
}; };
export default function RootLayout({ children }) { export default function RootLayout({ children }) {
return ( return (
<html lang="pt-BR" className={`${outfit.variable} ${inter.variable}`} suppressHydrationWarning> <html lang="pt-BR" className={`${outfit.variable} ${inter.variable}`} suppressHydrationWarning>
<head>
{/* Dados estruturados do site e da organização. É o que permite ao
Google montar o box de busca interna e entender a autoria. */}
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd.siteESociedade()) }}
/>
</head>
<body className="font-sans antialiased bg-slate-50 text-slate-900 dark:bg-slate-950 dark:text-slate-50 transition-colors duration-300" suppressHydrationWarning> <body className="font-sans antialiased bg-slate-50 text-slate-900 dark:bg-slate-950 dark:text-slate-50 transition-colors duration-300" suppressHydrationWarning>
<Providers> <Providers>
{children} {children}
Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

+20
View File
@@ -0,0 +1,20 @@
import { SITE } from "@/lib/seo";
/**
* robots.txt. O essencial aqui é apontar o sitemap: é assim que o Google
* descobre as páginas de série sem depender de rastrear link por link.
*/
export default function robots() {
return {
rules: [
{
userAgent: "*",
allow: "/",
// A rota de API só serve ao marketplace e não tem conteúdo indexável.
disallow: ["/api/"],
},
],
sitemap: `${SITE.url}/sitemap.xml`,
host: SITE.url,
};
}
+17
View File
@@ -0,0 +1,17 @@
import { paginaMeta } from "@/lib/seo";
/**
* A página desta rota é um client component, e client component não pode
* exportar metadata. Sem este layout, ela herdaria o título genérico do site,
* e o Google veria várias páginas com o mesmo título e a mesma descrição.
*/
export const metadata = paginaMeta({
titulo: "Qual ESP32 escolher",
descricao: "Responda seis perguntas sobre conectividade, energia, periféricos e segurança e receba a série de ESP32 recomendada para o seu projeto, com a justificativa técnica de cada ponto.",
caminho: "/seletor",
keywords: ["qual ESP32 escolher", "qual ESP32 usar", "escolher microcontrolador", "ESP32 para meu projeto"],
});
export default function Layout({ children }) {
return children;
}
+59 -6
View File
@@ -1,3 +1,4 @@
import { paginaMeta, jsonLd } from "@/lib/seo";
import Link from "next/link"; import Link from "next/link";
import Image from "next/image"; import Image from "next/image";
import Header from "@/components/Header"; import Header from "@/components/Header";
@@ -376,6 +377,22 @@ export default async function SerieDetail({ params }) {
</div> </div>
{/* DevBoard and Connections Tabs */} {/* DevBoard and Connections Tabs */}
{/* Ficha do produto e trilha de navegação para o Google. */}
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd.serie(key, serie)) }}
/>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify(jsonLd.trilha([
{ nome: "Início", caminho: "/" },
{ nome: "Séries", caminho: "/series" },
{ nome: serie.nome_completo, caminho: `/series/${key}` },
])),
}}
/>
<SeriesTabMenu tabs={tabs} color={serie.cor} /> <SeriesTabMenu tabs={tabs} color={serie.cor} />
<PinRestrictions conexoes={conexoes} serieKey={key} cor={serie.cor} /> <PinRestrictions conexoes={conexoes} serieKey={key} cor={serie.cor} />
@@ -542,15 +559,51 @@ export async function generateMetadata({ params }) {
const serie = seriesData[key]; const serie = seriesData[key];
if (!serie) { if (!serie) {
return { return { title: "Série não encontrada", robots: { index: false, follow: false } };
title: "Série não encontrada",
};
} }
return { // A descrição usa as especificações reais em vez de texto genérico: é o que
title: `ESPDocs - ${serie.nome_completo}`, // aparece no resultado de busca e o que faz alguém clicar.
description: serie.descricao, const radio = [
String(serie.wifi).startsWith("Não") ? null : serie.wifi.split(" (")[0],
String(serie.bluetooth).startsWith("Não") ? null : serie.bluetooth.split(" (")[0],
serie.zigbee_thread && !String(serie.zigbee_thread).startsWith("Não") ? "802.15.4" : null,
].filter(Boolean).join(", ");
const descricao =
`${serie.nome_completo}: ${serie.arquitetura}, ${serie.frequencia.replace("Até ", "até ")}, ` +
`${serie.memoria_sram} de SRAM e ${serie.gpio} GPIOs` +
(radio ? `. Rádio: ${radio}` : "") +
`. Pinagem completa, periféricos, segurança em hardware e pinos com restrição, em português.`;
// A pinagem da placa é a melhor prévia possível para uma série: quem
// compartilha o link já mostra o diagrama. Séries sem placa publicada caem
// na imagem padrão do site.
// Definir openGraph explicitamente impede a herança automática da imagem do
// site, então séries sem placa publicada (o H4) precisam do fallback aqui.
const imagem = serie.placa
? [{ url: serie.placa, width: 1600, height: 1091, alt: `Pinagem do ${serie.nome_completo}` }]
: [{ url: "/opengraph-image.png", width: 1200, height: 630, alt: "ESPDocs" }];
const meta = {
...paginaMeta({
titulo: `${serie.nome_completo}: especificações e pinagem`,
descricao,
caminho: `/series/${key}`,
tipo: "article",
keywords: [
serie.nome_completo, `${serie.nome_completo} pinout`,
`${serie.nome_completo} datasheet`, `${serie.nome_completo} especificações`,
`${serie.nome_completo} português`, "ESP32", "Espressif", "microcontrolador",
],
}),
other: { "article:section": "Séries ESP32" },
}; };
meta.openGraph = { ...meta.openGraph, images: imagem };
meta.twitter = { ...meta.twitter, images: imagem };
return meta;
} }
export async function generateStaticParams() { export async function generateStaticParams() {
+22
View File
@@ -0,0 +1,22 @@
import { paginaMeta } from "@/lib/seo";
/**
* A página desta rota é um client component, e client component não pode
* exportar metadata. Sem este layout, ela herdaria o título genérico do site,
* e o Google veria várias páginas com o mesmo título e a mesma descrição.
*/
export const metadata = paginaMeta({
titulo: "Séries ESP32",
descricao: "As 12 séries de ESP32 lado a lado: ESP32, S2, S3, S31, C2, C3, C5, C6, C61, P4, H2 e H4. Arquitetura, memória, rádio, periféricos e pinagem de cada uma, em português.",
caminho: "/series",
keywords: ["séries ESP32", "modelos de ESP32", "ESP32 S3", "ESP32 C6", "ESP32 P4", "diferença entre ESP32"],
});
// Um layout que define title como string simples substitui o template do root
// para toda a subárvore, e as páginas de série perdiam o sufixo "· ESPDocs".
// Redeclarar o template aqui devolve o comportamento às filhas.
metadata.title = { default: "Séries ESP32", template: "%s · ESPDocs" };
export default function Layout({ children }) {
return children;
}
+44
View File
@@ -0,0 +1,44 @@
import seriesData from "@/public/series.json";
import frameworksData from "@/public/frameworks.json";
import { SITE } from "@/lib/seo";
/**
* Sitemap gerado a partir dos próprios dados do site.
*
* Antes não existia sitemap nenhum, então o Google só chegava às páginas de
* série e de framework se topasse com um link. Como são geradas a partir de
* JSON, uma série nova entra aqui sozinha.
*/
export default function sitemap() {
const agora = new Date();
const fixas = [
{ caminho: "", prioridade: 1.0, frequencia: "weekly" },
{ caminho: "/series", prioridade: 0.9, frequencia: "weekly" },
{ caminho: "/comparacao", prioridade: 0.9, frequencia: "weekly" },
{ caminho: "/seletor", prioridade: 0.8, frequencia: "monthly" },
{ caminho: "/frameworks", prioridade: 0.8, frequencia: "monthly" },
{ caminho: "/glossario", prioridade: 0.7, frequencia: "monthly" },
{ caminho: "/catalogo", prioridade: 0.6, frequencia: "weekly" },
{ caminho: "/sobre", prioridade: 0.4, frequencia: "yearly" },
];
const series = Object.keys(seriesData).map((chave) => ({
caminho: `/series/${chave}`,
prioridade: 0.9,
frequencia: "monthly",
}));
const frameworks = Object.keys(frameworksData).map((chave) => ({
caminho: `/frameworks/${encodeURIComponent(chave)}`,
prioridade: 0.6,
frequencia: "monthly",
}));
return [...fixas, ...series, ...frameworks].map(({ caminho, prioridade, frequencia }) => ({
url: `${SITE.url}${caminho}`,
lastModified: agora,
changeFrequency: frequencia,
priority: prioridade,
}));
}
+9
View File
@@ -1,3 +1,4 @@
import { paginaMeta } from "@/lib/seo";
import Header from "@/components/Header"; import Header from "@/components/Header";
import Footer from "@/components/Footer"; import Footer from "@/components/Footer";
import Link from "next/link"; import Link from "next/link";
@@ -18,6 +19,14 @@ import {
Layers Layers
} from "lucide-react"; } from "lucide-react";
export const metadata = paginaMeta({
titulo: "Sobre o projeto",
descricao: "O ESPDocs é uma plataforma independente que reúne a documentação do ecossistema ESP32 em português brasileiro. Saiba como o projeto nasceu e como contribuir.",
caminho: "/sobre",
keywords: ["ESPDocs", "documentação ESP32 português", "projeto open source ESP32"],
});
export default function Sobre() { export default function Sobre() {
const features = [ const features = [
{ icon: <Languages className="w-6 h-6 text-purple-500" />, title: "Interface em Português", desc: "Organização e apresentação de dados técnicos totalmente em português." }, { icon: <Languages className="w-6 h-6 text-purple-500" />, title: "Interface em Português", desc: "Organização e apresentação de dados técnicos totalmente em português." },
+5 -1
View File
@@ -66,9 +66,13 @@ export default function Header() {
<div className="flex justify-between max-w-7xl mx-auto items-center gap-8"> <div className="flex justify-between max-w-7xl mx-auto items-center gap-8">
{/* LOGO */} {/* LOGO */}
<Link href="/" className="group shrink-0"> <Link href="/" className="group shrink-0">
<h1 className="text-2xl md:text-3xl font-display font-extrabold bg-gradient-to-r from-blue-500 via-purple-500 to-pink-500 bg-clip-text text-transparent transition-all duration-300 group-hover:scale-[1.02]"> <span className="flex items-center gap-2.5">
{/* eslint-disable-next-line @next/next/no-img-element */}
<img src="/marca/espdocs-marca.svg" alt="" aria-hidden="true" className="w-7 h-7 md:w-8 md:h-8 shrink-0" />
<h1 className="text-2xl md:text-3xl font-display font-extrabold bg-gradient-to-r from-blue-500 via-purple-500 to-pink-500 bg-clip-text text-transparent transition-all duration-300 group-hover:scale-[1.02]">
ESPDocs ESPDocs
</h1> </h1>
</span>
</Link> </Link>
{/* Menu Desktop */} {/* Menu Desktop */}
-80
View File
@@ -1,80 +0,0 @@
{
"0": "Next.js App Pages",
"1": "ESP32 Original SoC Silicon",
"2": "Xtensa DevKit Board Diagrams",
"3": "Layout and Marketplace API",
"4": "ESP32-C2 DevKit and Branding",
"5": "C6/C61 Wi-Fi 6 DevKits",
"6": "Lint and Build Tooling",
"7": "ESP32-C61 Silicon Subsystems",
"8": "ESP32-C3 Silicon Subsystems",
"9": "ESP32-C5 Silicon Subsystems",
"10": "ESP32-H2 Silicon Subsystems",
"11": "ESPDocs Site Content Pillars",
"12": "ESP32-C6 Silicon Subsystems",
"13": "ESP32-P4 Silicon Subsystems",
"14": "ESP32-S3 Silicon Subsystems",
"15": "ESP32-S2 Silicon Subsystems",
"16": "ESP32-C2 Silicon Subsystems",
"17": "Classic Wi-Fi and BLE Radios",
"18": "Modern BLE and Wi-Fi 6 Radios",
"19": "802.15.4 Thread and Zigbee",
"20": "P4 Camera and Video Pipeline",
"21": "CPU Cores and SIMD Extensions",
"22": "JS Path Aliases",
"23": "ESP-Matter Code Example",
"24": "Shared GDMA Controllers",
"25": "RISC-V Core Speed Variants",
"26": "Secure Boot (Xtensa Family)",
"27": "Thread 1.4 Zigbee Radio",
"28": "Bluetooth LE 5.3 Variants",
"29": "RISC-V Core Clock Variants",
"30": "Secure Boot (RISC-V Family)",
"31": "ESP-NN Code Example",
"32": "ESP-WHO Code Example",
"33": "Next.js Config",
"34": "PostCSS Config",
"35": "TEE and Permission Control",
"36": "ESP-ADF Code Example",
"37": "ESP-DSP Code Example",
"38": "ESP-IDF Code Example",
"39": "MicroPython Example",
"40": "Start Config Script",
"41": "eslint.config.mjs",
"42": "page.jsx",
"43": "page.jsx",
"44": "ConnectionsDiagram.jsx",
"45": "page.jsx",
"46": "page.jsx",
"47": "page.jsx",
"48": "Header.jsx",
"49": "route.js",
"50": "page.jsx",
"51": "page.jsx",
"52": "page.jsx",
"53": "page.jsx",
"54": "CLAUDE.md",
"55": "BoardCard.jsx",
"56": "CodeExample.jsx",
"57": "Footer.jsx",
"58": "Providers.jsx",
"59": "SeriesTabMenu.jsx",
"60": "Crypto Accelerators (AES, SHA, RSA, ECC, HMAC, RNG)",
"61": "API do Marketplace (app/api/placas/route.js)",
"62": "Comparação de Séries",
"63": "Diagramas Interativos de Conexões",
"64": "Exemplos de Código",
"65": "Frameworks ESP32 (ESP-IDF, Arduino, MicroPython)",
"66": "Google Sheets API Integration",
"67": "GOOGLE_SHEETS_API_KEY env var",
"68": "Marketplace de Placas (Catálogo)",
"69": "Material-UI",
"70": "Licença MIT",
"71": "Next.js 15 App Router",
"72": "React 19",
"73": "Séries ESP32",
"74": "Tailwind CSS 4",
"75": "Projeto não oficial (sem afiliação Espressif)",
"76": "Deploy na Vercel",
"77": "micropython.py"
}
-1
View File
@@ -1 +0,0 @@
/home/lucas/.local/share/uv/tools/graphifyy/bin/python
-1
View File
@@ -1 +0,0 @@
.
@@ -1 +0,0 @@
{"0": "Next.js App Pages", "1": "ESP32 Original SoC Silicon", "2": "Xtensa DevKit Board Diagrams", "3": "Layout and Marketplace API", "4": "ESP32-C2 DevKit and Branding", "5": "C6/C61 Wi-Fi 6 DevKits", "6": "Lint and Build Tooling", "7": "ESP32-C61 Silicon Subsystems", "8": "ESP32-C3 Silicon Subsystems", "9": "ESP32-C5 Silicon Subsystems", "10": "ESP32-H2 Silicon Subsystems", "11": "ESPDocs Site Content Pillars", "12": "ESP32-C6 Silicon Subsystems", "13": "ESP32-P4 Silicon Subsystems", "14": "ESP32-S3 Silicon Subsystems", "15": "ESP32-S2 Silicon Subsystems", "16": "ESP32-C2 Silicon Subsystems", "17": "Classic Wi-Fi and BLE Radios", "18": "Modern BLE and Wi-Fi 6 Radios", "19": "802.15.4 Thread and Zigbee", "20": "P4 Camera and Video Pipeline", "21": "CPU Cores and SIMD Extensions", "22": "JS Path Aliases", "23": "ESP-Matter Code Example", "24": "Shared GDMA Controllers", "25": "RISC-V Core Speed Variants", "26": "Secure Boot (Xtensa Family)", "27": "Thread 1.4 Zigbee Radio", "28": "Bluetooth LE 5.3 Variants", "29": "RISC-V Core Clock Variants", "30": "Secure Boot (RISC-V Family)", "31": "ESP-NN Code Example", "32": "ESP-WHO Code Example", "33": "Next.js Config", "34": "PostCSS Config", "35": "TEE and Permission Control", "36": "ESP-ADF Code Example", "37": "ESP-DSP Code Example", "38": "ESP-IDF Code Example", "39": "MicroPython Example", "40": "Start Config Script"}
-248
View File
@@ -1,248 +0,0 @@
# Graph Report - . (2026-07-14)
## Corpus Check
- Large corpus: 71 files · ~535,222 words. Semantic extraction will be expensive (many Claude tokens). Consider running on a subfolder.
## Summary
- 494 nodes · 611 edges · 41 communities (36 shown, 5 thin omitted)
- Extraction: 82% EXTRACTED · 18% INFERRED · 0% AMBIGUOUS · INFERRED: 109 edges (avg confidence: 0.87)
- Token cost: 435,411 input · 0 output
## Community Hubs (Navigation)
- Next.js App Pages
- ESP32 Original SoC Silicon
- Xtensa DevKit Board Diagrams
- Layout and Marketplace API
- ESP32-C2 DevKit and Branding
- C6/C61 Wi-Fi 6 DevKits
- Lint and Build Tooling
- ESP32-C61 Silicon Subsystems
- ESP32-C3 Silicon Subsystems
- ESP32-C5 Silicon Subsystems
- ESP32-H2 Silicon Subsystems
- ESPDocs Site Content Pillars
- ESP32-C6 Silicon Subsystems
- ESP32-P4 Silicon Subsystems
- ESP32-S3 Silicon Subsystems
- ESP32-S2 Silicon Subsystems
- ESP32-C2 Silicon Subsystems
- Classic Wi-Fi and BLE Radios
- Modern BLE and Wi-Fi 6 Radios
- 802.15.4 Thread and Zigbee
- P4 Camera and Video Pipeline
- CPU Cores and SIMD Extensions
- JS Path Aliases
- ESP-Matter Code Example
- Shared GDMA Controllers
- RISC-V Core Speed Variants
- Secure Boot (Xtensa Family)
- Thread 1.4 Zigbee Radio
- Bluetooth LE 5.3 Variants
- RISC-V Core Clock Variants
- Secure Boot (RISC-V Family)
- ESP-NN Code Example
- Next.js Config
- PostCSS Config
- TEE and Permission Control
## God Nodes (most connected - your core abstractions)
1. `ESP32-C5 Series` - 28 edges
2. `ESP32-S31 SoC` - 25 edges
3. `ESP32-C6 SoC` - 23 edges
4. `ESP32-H2 SoC` - 23 edges
5. `ESP32-S3 Series SoC` - 23 edges
6. `ESP32-C3 Series` - 21 edges
7. `ESP32-C61 SoC` - 21 edges
8. `ESP32-P4 Series SoC` - 21 edges
9. `ESP8684 Series (ESP32-C2)` - 17 edges
10. `ESP32-S2 Series SoC` - 17 edges
## Surprising Connections (you probably didn't know these)
- `Google Site Verification Token` --conceptually_related_to--> `ESPDocs - Documentação ESP32 em Português` [AMBIGUOUS]
public/google21a790a2c23c0ec5.html → README.md
- `Crypto Accelerators (AES, SHA, RSA, ECC, HMAC, TRNG)` --semantically_similar_to--> `Crypto Accelerators (SHA, AES, RSA, HMAC, RSA_DS, RNG)` [INFERRED] [semantically similar]
public/datasheets/ESP32-P4.pdf → public/datasheets/ESP32-S3.pdf
- `ULP Coprocessor (ULP-RISC-V, ULP-FSM)` --semantically_similar_to--> `ULP Coprocessor (ULP-RISC-V, ULP-FSM)` [INFERRED] [semantically similar]
public/datasheets/ESP32-S3.pdf → public/datasheets/ESP32-S2.pdf
- `RISC-V 32-bit Single-Core CPU (120 MHz)` --semantically_similar_to--> `RISC-V 32-bit Single-Core CPU (160 MHz)` [INFERRED] [semantically similar]
public/datasheets/ESP32-C2 (ESP8684).pdf → public/datasheets/ESP32-C3.pdf
- `2.4 GHz Wi-Fi (IEEE 802.11b/g/n)` --semantically_similar_to--> `2.4 GHz Wi-Fi (IEEE 802.11b/g/n)` [INFERRED] [semantically similar]
public/datasheets/ESP32-C2 (ESP8684).pdf → public/datasheets/ESP32-C3.pdf
## Import Cycles
- None detected.
## Hyperedges (group relationships)
- **Stack frontend do ESPDocs** — readme_nextjs_app_router, readme_react19, readme_tailwind_css, readme_material_ui [EXTRACTED 1.00]
- **Fluxo de dados do Marketplace de Placas** — readme_marketplace_placas, readme_api_placas_route, readme_google_sheets_api, readme_google_sheets_api_key [INFERRED 0.85]
- **Pilares de conteúdo do ESPDocs** — readme_series_esp32, readme_frameworks, readme_comparacao, readme_diagramas_interativos, readme_exemplos_codigo, readme_marketplace_placas [EXTRACTED 1.00]
- **ESP8684 Security Subsystem** — public_datasheets_esp32_c2__esp8684__secure_boot, public_datasheets_esp32_c2__esp8684__flash_encryption, public_datasheets_esp32_c2__esp8684__ecc_accelerator, public_datasheets_esp32_c2__esp8684__sha_accelerator, public_datasheets_esp32_c2__esp8684__rng [EXTRACTED 1.00]
- **ESP32-C3 Security Subsystem** — public_datasheets_esp32_c3_aes_accelerator, public_datasheets_esp32_c3_sha_accelerator, public_datasheets_esp32_c3_rsa_accelerator, public_datasheets_esp32_c3_hmac_digital_signature, public_datasheets_esp32_c3_secure_boot, public_datasheets_esp32_c3_flash_encryption, public_datasheets_esp32_c3_rng [EXTRACTED 1.00]
- **ESP32-C5 Multiprotocol Radio Stack** — public_datasheets_esp32_c5_wi_fi_6_dual_band, public_datasheets_esp32_c5_bluetooth_le_5, public_datasheets_esp32_c5_ieee_802_15_4, public_datasheets_esp32_c5_thread_1_4, public_datasheets_esp32_c5_zigbee_3_0, public_datasheets_esp32_c5_rf_module [EXTRACTED 1.00]
- **ESP32-C6 coexisting multi-protocol radio stack sharing one antenna** — public_datasheets_esp32_c6_wi_fi_6, public_datasheets_esp32_c6_bluetooth_le_5_3, public_datasheets_esp32_c6_ieee_802_15_4, public_datasheets_esp32_c6_rf_module [EXTRACTED 1.00]
- **ESP32-C61 security subsystem** — public_datasheets_esp32_c61_secure_boot, public_datasheets_esp32_c61_flash_psram_encryption, public_datasheets_esp32_c61_ecdsa, public_datasheets_esp32_c61_trng, public_datasheets_esp32_c61_apm, public_datasheets_esp32_c61_power_glitch_detector [EXTRACTED 1.00]
- **ESP32-H2 802.15.4 application-layer protocols** — public_datasheets_esp32_h2_ieee_802_15_4, public_datasheets_esp32_h2_thread, public_datasheets_esp32_h2_zigbee_3_0, public_datasheets_esp32_h2_matter [EXTRACTED 1.00]
- **ESP32-P4 Image and Voice Processing Pipeline** — public_datasheets_esp32_p4_isp, public_datasheets_esp32_p4_jpeg_codec, public_datasheets_esp32_p4_ppa, public_datasheets_esp32_p4_h264_encoder, public_datasheets_esp32_p4_mipi_csi, public_datasheets_esp32_p4_mipi_dsi, public_datasheets_esp32_p4_vad [EXTRACTED 1.00]
- **ESP32-S3 Wireless Subsystem (Wi-Fi + BLE + RF)** — public_datasheets_esp32_s3_wifi, public_datasheets_esp32_s3_wifi_mac_baseband, public_datasheets_esp32_s3_bluetooth_le, public_datasheets_esp32_s3_ble_baseband, public_datasheets_esp32_s3_rf_module [EXTRACTED 1.00]
- **Common Espressif Security Feature Family** — public_datasheets_esp32_p4_secure_boot, public_datasheets_esp32_s2_secure_boot, public_datasheets_esp32_s3_secure_boot, public_datasheets_esp32_s2_flash_encryption, public_datasheets_esp32_s3_flash_encryption, public_datasheets_esp32_p4_xts_aes [INFERRED 0.85]
- **ESP32-S31 Multiprotocol Wireless Stack** — public_datasheets_esp32_s31_wifi6, public_datasheets_esp32_s31_bluetooth_54_le, public_datasheets_esp32_s31_bluetooth_classic, public_datasheets_esp32_s31_ieee_802154 [EXTRACTED 1.00]
- **ESP32-S31 Security Subsystem** — public_datasheets_esp32_s31_secure_boot, public_datasheets_esp32_s31_flash_psram_encryption, public_datasheets_esp32_s31_crypto_accelerators, public_datasheets_esp32_s31_huk_key_manager [EXTRACTED 1.00]
- **ESP32 RTC Low-Power Domain** — public_datasheets_esp32_rtc, public_datasheets_esp32_pmu, public_datasheets_esp32_ulp_coprocessor, public_datasheets_esp32_rtc_memory [EXTRACTED 1.00]
- **Common DevKit Hardware Controls (Buttons, USB, LED)** — public_placas_esp32_c2_boot_rst_buttons, public_placas_esp32_c3_boot_rst_buttons, public_placas_esp32_c5_reset_boot_buttons, public_placas_esp32_c2_micro_usb_port, public_placas_esp32_c3_micro_usb_port, public_placas_esp32_c5_dual_usb_c_ports [INFERRED 0.75]
- **Espressif DevKit Pinout Diagram Family (C2/C3/C5)** — public_placas_esp32_c2_devkit_pinout, public_placas_esp32_c3_devkit_pinout, public_placas_esp32_c5_devkit_pinout, public_placas_esp32_c5_espressif_branding [INFERRED 0.95]
- **RISC-V Single-Core Wireless SoC Spec Family** — public_placas_esp32_c2_specs, public_placas_esp32_c3_specs, public_placas_esp32_c5_specs [INFERRED 0.85]
- **Espressif RISC-V DevKit Board Diagrams** — public_placas_esp32_c6_board, public_placas_esp32_c61_board, public_placas_esp32_h2_board, public_placas_esp32_p4_board [INFERRED 0.85]
- **Common DevKit Programming/Flashing Interface** — public_placas_esp32_c6_reset_boot_buttons, public_placas_esp32_c61_reset_boot_buttons, public_placas_esp32_p4_reset_boot_buttons, public_placas_esp32_c6_usb_uart_ports [INFERRED 0.75]
- **ESP32-P4 EV Board Multimedia and Connectivity Peripherals** — public_placas_esp32_p4_mipi_dsi_csi, public_placas_esp32_p4_audio_subsystem, public_placas_esp32_p4_ethernet, public_placas_esp32_p4_usb_ports [EXTRACTED 1.00]
- **ESP32-S31 Audio Subsystem** — public_placas_esp32_s31_audio_codec_chip, public_placas_esp32_s31_microphone, public_placas_esp32_s31_speaker_output_port [INFERRED 0.85]
- **ESP32-S31 Connectivity Ports** — public_placas_esp32_s31_rj45_ethernet_port, public_placas_esp32_s31_usb_type_a_port, public_placas_esp32_s31_usb_serial_jtag_port, public_placas_esp32_s31_usb_type_c_uart_port [INFERRED 0.85]
- **Espressif ESP32 Dev Board Image Gallery** — public_placas_esp32_pinout_diagram, public_placas_esp32_s2_pinout_diagram, public_placas_esp32_s3_pinout_diagram, public_placas_esp32_s31_board_photo [INFERRED 0.85]
## Communities (41 total, 5 thin omitted)
### Community 0 - "Next.js App Pages"
Cohesion: 0.07
Nodes (12): categoryIcons, metadata, getOptionIcon(), iconMap, Seletor(), ConnectionsDiagram(), FILTER_CATEGORIES, type_colors (+4 more)
### Community 1 - "ESP32 Original SoC Silicon"
Cohesion: 0.06
Nodes (46): Bluetooth v4.2 BR/EDR and LE Dual Mode, ESP32 SoC, Cryptographic Hardware Acceleration (AES, SHA-2, RSA, RNG), 8-bit DAC, Ethernet MAC with IEEE 1588, Flash Encryption, Power Management Unit / Power Modes, 448 KB ROM (+38 more)
### Community 2 - "Xtensa DevKit Board Diagrams"
Cohesion: 0.09
Nodes (31): ESP32 CP2102 USB-UART Bridge, ESP32 EN and Boot Buttons, ESP32 Micro-USB Port, ESP32-DevKitC Pinout Diagram, ESP32-S2 BOOT and RESET Buttons, ESP32-S2-DevKitC-1 Pinout Diagram, ESP32-S2 RGB LED @ IO18, ESP32-S2-SOLO Module (+23 more)
### Community 3 - "Layout and Marketplace API"
Cohesion: 0.07
Nodes (22): inter, metadata, outfit, @emotion/react, @emotion/styled, framer-motion, googleapis, @mui/icons-material (+14 more)
### Community 4 - "ESP32-C2 DevKit and Branding"
Cohesion: 0.10
Nodes (28): Gear + Circuit Traces + Sprouting Plant Motif, Globe and Shield/Clock IoT Icons, ESPDocs Project Logo, Boot and RST Buttons (ESP8684-DevKitM-1), ESP8684-DevKitM-1 Pinout Diagram (ESP32-C2), Dual 2x Pin Header Castellated Layout, Micro-USB Port (ESP8684-DevKitM-1), ESP8684-MINI-1 Module with PCB Antenna (+20 more)
### Community 5 - "C6/C61 Wi-Fi 6 DevKits"
Cohesion: 0.09
Nodes (27): ESP32-C61-DevKitC-1 Pinout Diagram, ESP32-C61 RESET and BOOT Buttons, ESP32-C61 Specs: RISC-V 160MHz, Wi-Fi 6, BLE 5, ESP32-C61 UART and USB Type-C Ports, ESP32-C61-WROOM-1 Module, ESP32-C6-DevKitC-1 Pinout Diagram, ESP32-C6 RESET and BOOT Buttons, ESP32-C6 RGB LED on GPIO8 (+19 more)
### Community 6 - "Lint and Build Tooling"
Cohesion: 0.08
Nodes (23): eslint, compat, __dirname, eslintConfig, __filename, eslint-config-next, @eslint/eslintrc, devDependencies (+15 more)
### Community 7 - "ESP32-C61 Silicon Subsystems"
Cohesion: 0.10
Nodes (20): Access Permission Management (APM), Digital Signature - ECDSA, ESP32-C61 SoC, Event Task Matrix (ETM), Flash/PSRAM Encryption (XTS-AES), General DMA Controller (GDMA), L1 Cache 32 KB, Power Management Unit (PMU) (+12 more)
### Community 8 - "ESP32-C3 Silicon Subsystems"
Cohesion: 0.11
Nodes (19): AES-128/256 Accelerator (FIPS PUB 197), 4096-bit eFuse Memory, ESP32-C3 Series, Flash Encryption, 22 Programmable GPIOs, HMAC and Digital Signature, Power Management Unit / RTC, QFN32 (5x5 mm) Package (+11 more)
### Community 9 - "ESP32-C5 Silicon Subsystems"
Cohesion: 0.11
Nodes (18): APM and TEE Controller, ECDSA Accelerator, ESP32-C5 Series, Event Task Matrix (ETM), External Flash/PSRAM Controller with Cache, 29 GPIOs, HP SRAM 384 KB, Key Manager (+10 more)
### Community 10 - "ESP32-H2 Silicon Subsystems"
Cohesion: 0.11
Nodes (18): Crypto Accelerators (AES, SHA, RSA, ECC, HMAC, RNG), Crypto Accelerators (AES, SHA, RSA, ECC, ECDSA, HMAC, RNG), ESP32-H2 SoC, Event Task Matrix (ETM), Flash Encryption, General DMA Controller (GDMA), 2 MB or 4 MB In-Package Flash, LP Memory 4 KB (+10 more)
### Community 11 - "ESPDocs Site Content Pillars"
Cohesion: 0.14
Nodes (18): Google Site Verification Token, API do Marketplace (app/api/placas/route.js), Comparação de Séries, Diagramas Interativos de Conexões, ESPDocs - Documentação ESP32 em Português, Exemplos de Código, Frameworks ESP32 (ESP-IDF, Arduino, MicroPython), Google Sheets API Integration (+10 more)
### Community 12 - "ESP32-C6 Silicon Subsystems"
Cohesion: 0.12
Nodes (17): Wi-Fi 6 (IEEE 802.11ax, 2.4 GHz), 4096-bit eFuse Memory, ESP32-C6 SoC, Event Task Matrix (ETM), General DMA Controller (GDMA), HP SRAM 512 KB, LP RISC-V 32-bit Processor (20 MHz), LP SRAM 16 KB (+9 more)
### Community 13 - "ESP32-P4 Silicon Subsystems"
Cohesion: 0.13
Nodes (17): ESP32-P4 Series SoC, Crypto Accelerators (AES, SHA, RSA, ECC, HMAC, TRNG), ECDSA Digital Signature Peripheral (ECDSA_DS), Ethernet MAC (EMAC), I3C Master and Slave, Key Manager (HUK from SRAM PUF), 768 KB HP L2MEM, RISC-V 32-bit Single-Core LP CPU (40 MHz) (+9 more)
### Community 14 - "ESP32-S3 Silicon Subsystems"
Cohesion: 0.12
Nodes (17): GDMA / VDMA / 2D-DMA Controllers, Touch Sensor, USB 2.0 High-Speed OTG, ESP32-S3 Series SoC, 4096-bit eFuse Memory, General DMA Controller (GDMA), L1 Cache, LCD Interface and DVP Camera Interface (+9 more)
### Community 15 - "ESP32-S2 Silicon Subsystems"
Cohesion: 0.13
Nodes (16): ESP32-S2 Series SoC, Crypto Accelerators (AES, SHA, RSA, HMAC, RNG, Digital Signature), Two 8-bit DACs, 4096-bit eFuse OTP, Flash Encryption, Power Management Unit and Five Power Modes, 128 KB ROM, RTC Memory (16 KB RTC SRAM) (+8 more)
### Community 16 - "ESP32-C2 Silicon Subsystems"
Cohesion: 0.13
Nodes (15): ECC Accelerator, ESP8684 Series (ESP32-C2), Flash Encryption, 14 Programmable GPIOs, In-package Flash (2 MB / 4 MB), Power Management Unit / Deep-sleep, QFN24 (4x4 mm) Package, Random Number Generator (RNG) (+7 more)
### Community 17 - "Classic Wi-Fi and BLE Radios"
Cohesion: 0.25
Nodes (8): RF Module (Balun, PA, LNA, RF Synthesizer), 2.4 GHz Wi-Fi (802.11 b/g/n), Wi-Fi MAC and Baseband, Bluetooth LE Baseband and Link Controller, Bluetooth 5 LE and Bluetooth Mesh, RF Module (Balun, PA, LNA, Antenna Switch), 2.4 GHz Wi-Fi (IEEE 802.11 b/g/n), Wi-Fi MAC and Baseband
### Community 18 - "Modern BLE and Wi-Fi 6 Radios"
Cohesion: 0.38
Nodes (7): Bluetooth LE 5.3, 2.4 GHz RF Module (Balun, PA, LNA), 2.4 GHz Wi-Fi (IEEE 802.11b/g/n), Bluetooth LE 5 / Bluetooth mesh, 2.4 GHz Wi-Fi (IEEE 802.11b/g/n), Bluetooth LE 5 (Core 6.0) / Bluetooth mesh 1.1, Dual-band Wi-Fi 6 (IEEE 802.11ax, 2.4/5 GHz)
### Community 19 - "802.15.4 Thread and Zigbee"
Cohesion: 0.38
Nodes (7): IEEE 802.15.4, Thread 1.3, Zigbee 3.0, IEEE 802.15.4, Matter, Thread, Zigbee 3.0
### Community 20 - "P4 Camera and Video Pipeline"
Cohesion: 0.29
Nodes (7): H264 Encoder, Image Processing Subsystem, Image Signal Processor (ISP), JPEG Codec, MIPI CSI, MIPI DSI, Pixel-Processing Accelerator (PPA)
### Community 21 - "CPU Cores and SIMD Extensions"
Cohesion: 0.33
Nodes (6): RISC-V 32-bit Dual-Core HP CPU (400 MHz), Processor Instruction Extensions (SIMD/AI), Xtensa Single-Core 32-bit LX7 Microprocessor (240 MHz), Single Precision Floating Point Unit (FPU), 128-bit Data Bus and Dedicated SIMD Instructions, Xtensa Dual-Core 32-bit LX7 Microprocessor (240 MHz)
### Community 22 - "JS Path Aliases"
Cohesion: 0.40
Nodes (4): compilerOptions, paths, @/*, ./*
### Community 24 - "Shared GDMA Controllers"
Cohesion: 0.67
Nodes (3): GDMA Controller, GDMA Controller (3 TX / 3 RX), GDMA Controller (3 TX / 3 RX)
### Community 25 - "RISC-V Core Speed Variants"
Cohesion: 0.67
Nodes (3): RISC-V 32-bit Single-Core CPU (120 MHz), RISC-V 32-bit Single-Core CPU (160 MHz), HP RISC-V 32-bit Processor (240 MHz)
### Community 26 - "Secure Boot (Xtensa Family)"
Cohesion: 0.67
Nodes (3): Secure Boot, Secure Boot, Secure Boot
### Community 27 - "Thread 1.4 Zigbee Radio"
Cohesion: 0.67
Nodes (3): IEEE 802.15.4 Radio, Thread 1.4, Zigbee 3.0
### Community 28 - "Bluetooth LE 5.3 Variants"
Cohesion: 0.67
Nodes (3): Bluetooth LE (Core 6.0 certified), Bluetooth LE 5.3, Bluetooth LE 5.3
### Community 29 - "RISC-V Core Clock Variants"
Cohesion: 0.67
Nodes (3): RISC-V 32-bit Single-Core Processor (160 MHz), HP RISC-V 32-bit Processor (160 MHz), RISC-V 32-bit Single-Core Processor (96 MHz)
### Community 30 - "Secure Boot (RISC-V Family)"
Cohesion: 0.67
Nodes (3): Secure Boot, Secure Boot, Secure Boot
## Ambiguous Edges - Review These
- `ESPDocs - Documentação ESP32 em Português` → `Google Site Verification Token` [AMBIGUOUS]
public/google21a790a2c23c0ec5.html · relation: conceptually_related_to
## Knowledge Gaps
- **195 isolated node(s):** `categoryIcons`, `metadata`, `outfit`, `inter`, `metadata` (+190 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **5 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
## Suggested Questions
_Questions this graph is uniquely positioned to answer:_
- **What is the exact relationship between `ESPDocs - Documentação ESP32 em Português` and `Google Site Verification Token`?**
_Edge tagged AMBIGUOUS (relation: conceptually_related_to) - confidence is low._
- **Why does `dependencies` connect `Layout and Marketplace API` to `Next.js App Pages`, `Lint and Build Tooling`?**
_High betweenness centrality (0.025) - this node is a cross-community bridge._
- **Why does `ESP32-S3 Series SoC` connect `ESP32-S3 Silicon Subsystems` to `ESP32-P4 Silicon Subsystems`, `ESP32-S2 Silicon Subsystems`, `Classic Wi-Fi and BLE Radios`, `CPU Cores and SIMD Extensions`, `Secure Boot (RISC-V Family)`?**
_High betweenness centrality (0.015) - this node is a cross-community bridge._
- **Why does `lucide-react` connect `Next.js App Pages` to `Layout and Marketplace API`?**
_High betweenness centrality (0.014) - this node is a cross-community bridge._
- **Are the 2 inferred relationships involving `ESP32-C6 SoC` (e.g. with `ESP32-C61 SoC` and `ESP32-H2 SoC`) actually correct?**
_`ESP32-C6 SoC` has 2 INFERRED edges - model-reasoned connections that need verification._
- **Are the 2 inferred relationships involving `ESP32-S3 Series SoC` (e.g. with `ESP32-P4 Series SoC` and `ESP32-S2 Series SoC`) actually correct?**
_`ESP32-S3 Series SoC` has 2 INFERRED edges - model-reasoned connections that need verification._
- **What connects `categoryIcons`, `metadata`, `outfit` to the rest of the system?**
_195 weakly-connected nodes found - possible documentation gaps or missing edges._
-12
View File
@@ -1,12 +0,0 @@
{
"runs": [
{
"date": "2026-07-14T11:40:04.053012+00:00",
"input_tokens": 435411,
"output_tokens": 0,
"files": 70
}
],
"total_input_tokens": 435411,
"total_output_tokens": 0
}
File diff suppressed because it is too large. Load diff
-357
View File
@@ -1,357 +0,0 @@
{
"app/api/placas/route.js": {
"mtime": 1784028542.890868,
"ast_hash": "292fa5aae92458ae0098d7fa41ccba72",
"semantic_hash": "292fa5aae92458ae0098d7fa41ccba72"
},
"app/catalogo/page.jsx": {
"mtime": 1784028542.890868,
"ast_hash": "72a4c176cf850cde1d4fe4f3ee49d73b",
"semantic_hash": "72a4c176cf850cde1d4fe4f3ee49d73b"
},
"app/comparacao/page.jsx": {
"mtime": 1784028542.890868,
"ast_hash": "5ac03d0fe6324872da30da6bab789989",
"semantic_hash": "5ac03d0fe6324872da30da6bab789989"
},
"app/frameworks/[key]/page.jsx": {
"mtime": 1784028542.8911717,
"ast_hash": "d9de72e32c9dcf7f0c31a0bf7818eafe",
"semantic_hash": "d9de72e32c9dcf7f0c31a0bf7818eafe"
},
"app/frameworks/page.jsx": {
"mtime": 1784028542.8911717,
"ast_hash": "5e279bbcefdd13b44223a87ed99325a9",
"semantic_hash": "5e279bbcefdd13b44223a87ed99325a9"
},
"app/glossario/page.jsx": {
"mtime": 1784028542.8911717,
"ast_hash": "a48fcc52da305726ba8120b09259a226",
"semantic_hash": "a48fcc52da305726ba8120b09259a226"
},
"app/layout.jsx": {
"mtime": 1784028542.8911717,
"ast_hash": "2d5c93ff40d043dcc807c7c5f479cc1e",
"semantic_hash": "2d5c93ff40d043dcc807c7c5f479cc1e"
},
"app/page.jsx": {
"mtime": 1784028542.8911717,
"ast_hash": "7889db722e90db47360774609726fe7e",
"semantic_hash": "7889db722e90db47360774609726fe7e"
},
"app/seletor/page.jsx": {
"mtime": 1784028542.8921716,
"ast_hash": "3800af380877bbc48a9a344bf9b67aba",
"semantic_hash": "3800af380877bbc48a9a344bf9b67aba"
},
"app/series/[key]/page.jsx": {
"mtime": 1784028542.893046,
"ast_hash": "cb4d219462c1262381c89a7934e41cb0",
"semantic_hash": "cb4d219462c1262381c89a7934e41cb0"
},
"app/series/page.jsx": {
"mtime": 1784028542.893046,
"ast_hash": "1993a1a26c7ecf4d4d09311acfbf4062",
"semantic_hash": "1993a1a26c7ecf4d4d09311acfbf4062"
},
"app/sobre/page.jsx": {
"mtime": 1784028542.893046,
"ast_hash": "95b946dc86f6a01506850cafb29af245",
"semantic_hash": "95b946dc86f6a01506850cafb29af245"
},
"components/BoardCard.jsx": {
"mtime": 1784028542.8931718,
"ast_hash": "20bb2df7129ddb4610e40665d35e0123",
"semantic_hash": "20bb2df7129ddb4610e40665d35e0123"
},
"components/CodeExample.jsx": {
"mtime": 1784028542.8937821,
"ast_hash": "d27b81c8e5d291bc0fbd0237d2664cfd",
"semantic_hash": "d27b81c8e5d291bc0fbd0237d2664cfd"
},
"components/ConnectionsDiagram.jsx": {
"mtime": 1784028542.8937821,
"ast_hash": "6298fff16eb50a793500b068226e0f6b",
"semantic_hash": "6298fff16eb50a793500b068226e0f6b"
},
"components/Footer.jsx": {
"mtime": 1784028542.8937821,
"ast_hash": "8301912e24a787f25f15c315312c1262",
"semantic_hash": "8301912e24a787f25f15c315312c1262"
},
"components/Header.jsx": {
"mtime": 1784028542.8937821,
"ast_hash": "ddae6c8f48e853c7e69c1601745849d6",
"semantic_hash": "ddae6c8f48e853c7e69c1601745849d6"
},
"components/Providers.jsx": {
"mtime": 1784028542.8937821,
"ast_hash": "d31db26b58629a807b7df4c4a3189772",
"semantic_hash": "d31db26b58629a807b7df4c4a3189772"
},
"components/SeriesTabMenu.jsx": {
"mtime": 1784028542.8937821,
"ast_hash": "41333d2683fb6eec4e0ce3c1e7df2b45",
"semantic_hash": "41333d2683fb6eec4e0ce3c1e7df2b45"
},
"eslint.config.mjs": {
"mtime": 1784028542.8937821,
"ast_hash": "cd28c192684b52caf16d8d1df068e272",
"semantic_hash": "cd28c192684b52caf16d8d1df068e272"
},
"jsconfig.json": {
"mtime": 1784028542.8937821,
"ast_hash": "21306b44064ae42bbbd715b1986abaf8",
"semantic_hash": "21306b44064ae42bbbd715b1986abaf8"
},
"next.config.mjs": {
"mtime": 1784028542.8937821,
"ast_hash": "21958f5752add43cc47ab0ff5172cd46",
"semantic_hash": "21958f5752add43cc47ab0ff5172cd46"
},
"package.json": {
"mtime": 1784028542.8951716,
"ast_hash": "ba7a64ba8723e44ff54603adc91751e1",
"semantic_hash": "ba7a64ba8723e44ff54603adc91751e1"
},
"postcss.config.mjs": {
"mtime": 1784028542.8951716,
"ast_hash": "675899342e765a4d16acd75a53389101",
"semantic_hash": "675899342e765a4d16acd75a53389101"
},
"public/conexoes/ESP32-C2.json": {
"mtime": 1784028542.8965435,
"ast_hash": "aad3b4f175c3dd386adbf368f15073f7",
"semantic_hash": "aad3b4f175c3dd386adbf368f15073f7"
},
"public/conexoes/ESP32-C3.json": {
"mtime": 1784028542.8967931,
"ast_hash": "5deecb15a45f0291802077cd24e4051b",
"semantic_hash": "5deecb15a45f0291802077cd24e4051b"
},
"public/conexoes/ESP32-C5.json": {
"mtime": 1784028542.8967931,
"ast_hash": "949d8facf94a56f254872c185a88d2a1",
"semantic_hash": "949d8facf94a56f254872c185a88d2a1"
},
"public/conexoes/ESP32-C6.json": {
"mtime": 1784028542.8967931,
"ast_hash": "84dceb481e501b68643300982832c8c7",
"semantic_hash": "84dceb481e501b68643300982832c8c7"
},
"public/conexoes/ESP32-C61.json": {
"mtime": 1784028542.8967931,
"ast_hash": "88aa2cadabff6bbd1ba662531e904df6",
"semantic_hash": "88aa2cadabff6bbd1ba662531e904df6"
},
"public/conexoes/ESP32-H2.json": {
"mtime": 1784028542.8967931,
"ast_hash": "61e9339e808c87642b618b322de424dd",
"semantic_hash": "61e9339e808c87642b618b322de424dd"
},
"public/conexoes/ESP32-P4.json": {
"mtime": 1784028542.8967931,
"ast_hash": "aec6bfdf220455851dea0619fa3954e8",
"semantic_hash": "aec6bfdf220455851dea0619fa3954e8"
},
"public/conexoes/ESP32-S2.json": {
"mtime": 1784028542.8967931,
"ast_hash": "4b6b0c563a63a59756227ef096141cd5",
"semantic_hash": "4b6b0c563a63a59756227ef096141cd5"
},
"public/conexoes/ESP32-S3.json": {
"mtime": 1784028542.8967931,
"ast_hash": "7d877331595d2677894a926714590c04",
"semantic_hash": "7d877331595d2677894a926714590c04"
},
"public/conexoes/ESP32-S31.json": {
"mtime": 1784028542.8971717,
"ast_hash": "0f3cd4f8f2741329ea93f18227b9f2a9",
"semantic_hash": "0f3cd4f8f2741329ea93f18227b9f2a9"
},
"public/conexoes/ESP32.json": {
"mtime": 1784028542.8971717,
"ast_hash": "0d111992e8707f75177cf8ec495519f1",
"semantic_hash": "0d111992e8707f75177cf8ec495519f1"
},
"public/exemplos/esp-adf.c": {
"mtime": 1784028542.9760828,
"ast_hash": "189f598b93c1b130dedce25d07513a30",
"semantic_hash": "189f598b93c1b130dedce25d07513a30"
},
"public/exemplos/esp-dsp.c": {
"mtime": 1784028542.9760828,
"ast_hash": "f3406d15617cf415888b07d688cdaf34",
"semantic_hash": "f3406d15617cf415888b07d688cdaf34"
},
"public/exemplos/esp-idf.c": {
"mtime": 1784028542.9760828,
"ast_hash": "28d7cf987af6c5d3a54ad1fe06571e91",
"semantic_hash": "28d7cf987af6c5d3a54ad1fe06571e91"
},
"public/exemplos/esp-matter.c": {
"mtime": 1784028542.9760828,
"ast_hash": "332c82ce14230250fd828db6e22cae44",
"semantic_hash": "332c82ce14230250fd828db6e22cae44"
},
"public/exemplos/esp-nn.c": {
"mtime": 1784028542.9760828,
"ast_hash": "186d382f96347dbae8be3b13c0252ad3",
"semantic_hash": "186d382f96347dbae8be3b13c0252ad3"
},
"public/exemplos/esp-who.c": {
"mtime": 1784028542.9760828,
"ast_hash": "2abc563b2750f0a823438a3e9b1c56c1",
"semantic_hash": "2abc563b2750f0a823438a3e9b1c56c1"
},
"public/exemplos/micropython.py": {
"mtime": 1784028542.9760828,
"ast_hash": "99c3b78148eee8632bb7772db61bdfdd",
"semantic_hash": "99c3b78148eee8632bb7772db61bdfdd"
},
"public/frameworks.json": {
"mtime": 1784028542.9760828,
"ast_hash": "3595f7219f3fcfd1b8d59ea741fab869",
"semantic_hash": "3595f7219f3fcfd1b8d59ea741fab869"
},
"public/series.json": {
"mtime": 1784028543.0671756,
"ast_hash": "bc5b9c159d066d50e955d28179e8c0ca",
"semantic_hash": "bc5b9c159d066d50e955d28179e8c0ca"
},
"start.config.js": {
"mtime": 1784028543.0671756,
"ast_hash": "a6a5cda80ac9eea57d50f14872a739d2",
"semantic_hash": "a6a5cda80ac9eea57d50f14872a739d2"
},
"README.md": {
"mtime": 1784028542.8901715,
"ast_hash": "e1c8b99e874c6cddc035c7ac900c9bbd",
"semantic_hash": "e1c8b99e874c6cddc035c7ac900c9bbd"
},
"public/google21a790a2c23c0ec5.html": {
"mtime": 1784028542.9760828,
"ast_hash": "c8e349cbe0172dc98e26385e09d67cc3",
"semantic_hash": "c8e349cbe0172dc98e26385e09d67cc3"
},
"public/datasheets/ESP32-C2 (ESP8684).pdf": {
"mtime": 1784028542.9001718,
"ast_hash": "36e6ee1a52e7293510d60c7adfc0fbaf",
"semantic_hash": "36e6ee1a52e7293510d60c7adfc0fbaf"
},
"public/datasheets/ESP32-C3.pdf": {
"mtime": 1784028542.906172,
"ast_hash": "25beb64276e6bc6c5d13d032e30847d9",
"semantic_hash": "25beb64276e6bc6c5d13d032e30847d9"
},
"public/datasheets/ESP32-C5.pdf": {
"mtime": 1784028542.9111722,
"ast_hash": "c1083a9504a574282a09f557e0343d48",
"semantic_hash": "c1083a9504a574282a09f557e0343d48"
},
"public/datasheets/ESP32-C6.pdf": {
"mtime": 1784028542.9171722,
"ast_hash": "66a7b580c6afff5becf9bd326bb675d4",
"semantic_hash": "66a7b580c6afff5becf9bd326bb675d4"
},
"public/datasheets/ESP32-C61.pdf": {
"mtime": 1784028542.9231725,
"ast_hash": "2f86d54475a006e9b0e41ba329560c5f",
"semantic_hash": "2f86d54475a006e9b0e41ba329560c5f"
},
"public/datasheets/ESP32-H2.pdf": {
"mtime": 1784028542.9301724,
"ast_hash": "460ea57a62c32646d12ae0088eb1a073",
"semantic_hash": "460ea57a62c32646d12ae0088eb1a073"
},
"public/datasheets/ESP32-P4.pdf": {
"mtime": 1784028542.948173,
"ast_hash": "aa3fc8de7dfa4e7d3ff40dd9e19fdb35",
"semantic_hash": "aa3fc8de7dfa4e7d3ff40dd9e19fdb35"
},
"public/datasheets/ESP32-S2.pdf": {
"mtime": 1784028542.9561732,
"ast_hash": "1e912b14670dde07253da71147ea2ded",
"semantic_hash": "1e912b14670dde07253da71147ea2ded"
},
"public/datasheets/ESP32-S3.pdf": {
"mtime": 1784028542.9641733,
"ast_hash": "cdb8a18273a761aff071e6a665867205",
"semantic_hash": "cdb8a18273a761aff071e6a665867205"
},
"public/datasheets/ESP32-S31.pdf": {
"mtime": 1784028542.9691734,
"ast_hash": "b2f7aa8b2cc16c18815abc5a1ddd566a",
"semantic_hash": "b2f7aa8b2cc16c18815abc5a1ddd566a"
},
"public/datasheets/ESP32.pdf": {
"mtime": 1784028542.9751735,
"ast_hash": "2354c04b871b3b6b294076c1fb953522",
"semantic_hash": "2354c04b871b3b6b294076c1fb953522"
},
"public/logo.png": {
"mtime": 1784028542.9761736,
"ast_hash": "1c0eae14654c8f5427c7141029ecd29e",
"semantic_hash": "1c0eae14654c8f5427c7141029ecd29e"
},
"public/placas/esp32-c2.png": {
"mtime": 1784028542.9771736,
"ast_hash": "3480aadf17ef57e93ee5afdfd934d896",
"semantic_hash": "3480aadf17ef57e93ee5afdfd934d896"
},
"public/placas/esp32-c3.png": {
"mtime": 1784028542.9791737,
"ast_hash": "85df0510a61dee5ffa581d912f5d68c9",
"semantic_hash": "85df0510a61dee5ffa581d912f5d68c9"
},
"public/placas/esp32-c5.png": {
"mtime": 1784028542.9811738,
"ast_hash": "6a59f4e23ac9ec5e319a77a6600fa343",
"semantic_hash": "6a59f4e23ac9ec5e319a77a6600fa343"
},
"public/placas/esp32-c6.png": {
"mtime": 1784028542.9841738,
"ast_hash": "0f836b438f62bb4b6237c9318346cdf2",
"semantic_hash": "0f836b438f62bb4b6237c9318346cdf2"
},
"public/placas/esp32-c61.png": {
"mtime": 1784028542.989174,
"ast_hash": "6734034067caa41374f2a4ca5064a7d3",
"semantic_hash": "6734034067caa41374f2a4ca5064a7d3"
},
"public/placas/esp32-h2.png": {
"mtime": 1784028542.993174,
"ast_hash": "7dceb269eb019ce826ef336dd57ab52c",
"semantic_hash": "7dceb269eb019ce826ef336dd57ab52c"
},
"public/placas/esp32-p4.png": {
"mtime": 1784028543.0061743,
"ast_hash": "c144c171692850ac257d00827dc674f5",
"semantic_hash": "c144c171692850ac257d00827dc674f5"
},
"public/placas/esp32-s2.png": {
"mtime": 1784028543.0091743,
"ast_hash": "670c4a12339f32fb32af2eebdc575892",
"semantic_hash": "670c4a12339f32fb32af2eebdc575892"
},
"public/placas/esp32-s3.png": {
"mtime": 1784028543.0161746,
"ast_hash": "52b96040d9c648f7c52aa4c8adac7e47",
"semantic_hash": "52b96040d9c648f7c52aa4c8adac7e47"
},
"public/placas/esp32-s31.png": {
"mtime": 1784028543.0621755,
"ast_hash": "5b970e68abce449015851cd5966525e3",
"semantic_hash": "5b970e68abce449015851cd5966525e3"
},
"public/placas/esp32.png": {
"mtime": 1784028543.0671756,
"ast_hash": "6791837138c1c5400db2ee07c9025627",
"semantic_hash": "6791837138c1c5400db2ee07c9025627"
},
"CLAUDE.md": {
"mtime": 1784029337.8254366,
"ast_hash": "0ea9488e278d2efd15e7c0b6e7cdca83",
"semantic_hash": "0ea9488e278d2efd15e7c0b6e7cdca83"
}
}
@@ -1,79 +0,0 @@
{
"0": "Next.js App Pages",
"1": "ESP32 Original SoC Silicon",
"2": "Xtensa DevKit Board Diagrams",
"3": "Layout and Marketplace API",
"4": "ESP32-C2 DevKit and Branding",
"5": "C6/C61 Wi-Fi 6 DevKits",
"6": "Lint and Build Tooling",
"7": "ESP32-C61 Silicon Subsystems",
"8": "ESP32-C3 Silicon Subsystems",
"9": "ESP32-C5 Silicon Subsystems",
"10": "ESP32-H2 Silicon Subsystems",
"11": "ESPDocs Site Content Pillars",
"12": "ESP32-C6 Silicon Subsystems",
"13": "ESP32-P4 Silicon Subsystems",
"14": "ESP32-S3 Silicon Subsystems",
"15": "ESP32-S2 Silicon Subsystems",
"16": "ESP32-C2 Silicon Subsystems",
"17": "Classic Wi-Fi and BLE Radios",
"18": "Modern BLE and Wi-Fi 6 Radios",
"19": "802.15.4 Thread and Zigbee",
"20": "P4 Camera and Video Pipeline",
"21": "CPU Cores and SIMD Extensions",
"22": "JS Path Aliases",
"23": "ESP-Matter Code Example",
"24": "Shared GDMA Controllers",
"25": "RISC-V Core Speed Variants",
"26": "Secure Boot (Xtensa Family)",
"27": "Thread 1.4 Zigbee Radio",
"28": "Bluetooth LE 5.3 Variants",
"29": "RISC-V Core Clock Variants",
"30": "Secure Boot (RISC-V Family)",
"31": "ESP-NN Code Example",
"32": "ESP-WHO Code Example",
"33": "Next.js Config",
"34": "PostCSS Config",
"35": "TEE and Permission Control",
"36": "ESP-ADF Code Example",
"37": "ESP-DSP Code Example",
"38": "ESP-IDF Code Example",
"39": "MicroPython Example",
"40": "Start Config Script",
"41": "eslint.config.mjs",
"42": "page.jsx",
"43": "page.jsx",
"44": "ConnectionsDiagram.jsx",
"45": "page.jsx",
"46": "page.jsx",
"47": "page.jsx",
"48": "Header.jsx",
"49": "route.js",
"50": "page.jsx",
"51": "page.jsx",
"52": "page.jsx",
"53": "page.jsx",
"54": "CLAUDE.md",
"55": "BoardCard.jsx",
"56": "CodeExample.jsx",
"57": "Footer.jsx",
"58": "Providers.jsx",
"59": "SeriesTabMenu.jsx",
"60": "Crypto Accelerators (AES, SHA, RSA, ECC, HMAC, RNG)",
"61": "API do Marketplace (app/api/placas/route.js)",
"62": "Comparação de Séries",
"63": "Diagramas Interativos de Conexões",
"64": "Exemplos de Código",
"65": "Frameworks ESP32 (ESP-IDF, Arduino, MicroPython)",
"66": "Google Sheets API Integration",
"67": "GOOGLE_SHEETS_API_KEY env var",
"68": "Marketplace de Placas (Catálogo)",
"69": "Material-UI",
"70": "Licença MIT",
"71": "Next.js 15 App Router",
"72": "React 19",
"73": "Séries ESP32",
"74": "Tailwind CSS 4",
"75": "Projeto não oficial (sem afiliação Espressif)",
"76": "Deploy na Vercel"
}
-288
View File
@@ -1,288 +0,0 @@
# Graph Report - espdocs (2026-07-14)
## Corpus Check
- 47 files · ~535,253 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
- 510 nodes · 554 edges · 77 communities (53 shown, 24 thin omitted)
- Extraction: 81% EXTRACTED · 19% INFERRED · 0% AMBIGUOUS · INFERRED: 104 edges (avg confidence: 0.87)
- Token cost: 0 input · 0 output
## Graph Freshness
- Built from commit: `de4abf7c`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).
## Community Hubs (Navigation)
- ESP32 Original SoC Silicon
- Xtensa DevKit Board Diagrams
- Layout and Marketplace API
- ESP32-C2 DevKit and Branding
- C6/C61 Wi-Fi 6 DevKits
- Lint and Build Tooling
- ESP32-C61 Silicon Subsystems
- ESP32-C3 Silicon Subsystems
- ESP32-C5 Silicon Subsystems
- ESP32-H2 Silicon Subsystems
- ESPDocs Site Content Pillars
- ESP32-C6 Silicon Subsystems
- ESP32-P4 Silicon Subsystems
- ESP32-S3 Silicon Subsystems
- ESP32-S2 Silicon Subsystems
- ESP32-C2 Silicon Subsystems
- Classic Wi-Fi and BLE Radios
- Modern BLE and Wi-Fi 6 Radios
- 802.15.4 Thread and Zigbee
- P4 Camera and Video Pipeline
- CPU Cores and SIMD Extensions
- JS Path Aliases
- ESP-Matter Code Example
- Shared GDMA Controllers
- RISC-V Core Speed Variants
- Secure Boot (Xtensa Family)
- Thread 1.4 Zigbee Radio
- Bluetooth LE 5.3 Variants
- RISC-V Core Clock Variants
- Secure Boot (RISC-V Family)
- ESP-NN Code Example
- Next.js Config
- PostCSS Config
- TEE and Permission Control
- eslint.config.mjs
- page.jsx
- ConnectionsDiagram.jsx
- page.jsx
- page.jsx
- CLAUDE.md
- Crypto Accelerators (AES, SHA, RSA, ECC, HMAC, RNG)
- API do Marketplace (app/api/placas/route.js)
- Comparação de Séries
- Diagramas Interativos de Conexões
- Exemplos de Código
- Frameworks ESP32 (ESP-IDF, Arduino, MicroPython)
- Google Sheets API Integration
- GOOGLE_SHEETS_API_KEY env var
- Marketplace de Placas (Catálogo)
- Material-UI
- Licença MIT
- Next.js 15 App Router
- React 19
- Séries ESP32
- Tailwind CSS 4
- Projeto não oficial (sem afiliação Espressif)
- Deploy na Vercel
## God Nodes (most connected - your core abstractions)
1. `ESP32-C5 Series` - 28 edges
2. `ESP32-S31 SoC` - 25 edges
3. `ESP32-C6 SoC` - 23 edges
4. `ESP32-H2 SoC` - 23 edges
5. `ESP32-S3 Series SoC` - 23 edges
6. `ESP32-C3 Series` - 21 edges
7. `ESP32-C61 SoC` - 21 edges
8. `ESP32-P4 Series SoC` - 21 edges
9. `ESP8684 Series (ESP32-C2)` - 17 edges
10. `ESP32-S2 Series SoC` - 17 edges
## Surprising Connections (you probably didn't know these)
- `Google Site Verification Token` --conceptually_related_to--> `ESPDocs - Documentação ESP32 em Português` [AMBIGUOUS]
public/google21a790a2c23c0ec5.html → README.md
- `Crypto Accelerators (AES, SHA, RSA, ECC, HMAC, TRNG)` --semantically_similar_to--> `Crypto Accelerators (SHA, AES, RSA, HMAC, RSA_DS, RNG)` [INFERRED] [semantically similar]
public/datasheets/ESP32-P4.pdf → public/datasheets/ESP32-S3.pdf
- `ULP Coprocessor (ULP-RISC-V, ULP-FSM)` --semantically_similar_to--> `ULP Coprocessor (ULP-RISC-V, ULP-FSM)` [INFERRED] [semantically similar]
public/datasheets/ESP32-S3.pdf → public/datasheets/ESP32-S2.pdf
- `RISC-V 32-bit Single-Core CPU (120 MHz)` --semantically_similar_to--> `RISC-V 32-bit Single-Core CPU (160 MHz)` [INFERRED] [semantically similar]
public/datasheets/ESP32-C2 (ESP8684).pdf → public/datasheets/ESP32-C3.pdf
- `2.4 GHz Wi-Fi (IEEE 802.11b/g/n)` --semantically_similar_to--> `2.4 GHz Wi-Fi (IEEE 802.11b/g/n)` [INFERRED] [semantically similar]
public/datasheets/ESP32-C2 (ESP8684).pdf → public/datasheets/ESP32-C3.pdf
## Import Cycles
- None detected.
## Hyperedges (group relationships)
- **Stack frontend do ESPDocs** — readme_nextjs_app_router, readme_react19, readme_tailwind_css, readme_material_ui [EXTRACTED 1.00]
- **Fluxo de dados do Marketplace de Placas** — readme_marketplace_placas, readme_api_placas_route, readme_google_sheets_api, readme_google_sheets_api_key [INFERRED 0.85]
- **Pilares de conteúdo do ESPDocs** — readme_series_esp32, readme_frameworks, readme_comparacao, readme_diagramas_interativos, readme_exemplos_codigo, readme_marketplace_placas [EXTRACTED 1.00]
- **ESP8684 Security Subsystem** — public_datasheets_esp32_c2__esp8684__secure_boot, public_datasheets_esp32_c2__esp8684__flash_encryption, public_datasheets_esp32_c2__esp8684__ecc_accelerator, public_datasheets_esp32_c2__esp8684__sha_accelerator, public_datasheets_esp32_c2__esp8684__rng [EXTRACTED 1.00]
- **ESP32-C3 Security Subsystem** — public_datasheets_esp32_c3_aes_accelerator, public_datasheets_esp32_c3_sha_accelerator, public_datasheets_esp32_c3_rsa_accelerator, public_datasheets_esp32_c3_hmac_digital_signature, public_datasheets_esp32_c3_secure_boot, public_datasheets_esp32_c3_flash_encryption, public_datasheets_esp32_c3_rng [EXTRACTED 1.00]
- **ESP32-C5 Multiprotocol Radio Stack** — public_datasheets_esp32_c5_wi_fi_6_dual_band, public_datasheets_esp32_c5_bluetooth_le_5, public_datasheets_esp32_c5_ieee_802_15_4, public_datasheets_esp32_c5_thread_1_4, public_datasheets_esp32_c5_zigbee_3_0, public_datasheets_esp32_c5_rf_module [EXTRACTED 1.00]
- **ESP32-C6 coexisting multi-protocol radio stack sharing one antenna** — public_datasheets_esp32_c6_wi_fi_6, public_datasheets_esp32_c6_bluetooth_le_5_3, public_datasheets_esp32_c6_ieee_802_15_4, public_datasheets_esp32_c6_rf_module [EXTRACTED 1.00]
- **ESP32-C61 security subsystem** — public_datasheets_esp32_c61_secure_boot, public_datasheets_esp32_c61_flash_psram_encryption, public_datasheets_esp32_c61_ecdsa, public_datasheets_esp32_c61_trng, public_datasheets_esp32_c61_apm, public_datasheets_esp32_c61_power_glitch_detector [EXTRACTED 1.00]
- **ESP32-H2 802.15.4 application-layer protocols** — public_datasheets_esp32_h2_ieee_802_15_4, public_datasheets_esp32_h2_thread, public_datasheets_esp32_h2_zigbee_3_0, public_datasheets_esp32_h2_matter [EXTRACTED 1.00]
- **ESP32-P4 Image and Voice Processing Pipeline** — public_datasheets_esp32_p4_isp, public_datasheets_esp32_p4_jpeg_codec, public_datasheets_esp32_p4_ppa, public_datasheets_esp32_p4_h264_encoder, public_datasheets_esp32_p4_mipi_csi, public_datasheets_esp32_p4_mipi_dsi, public_datasheets_esp32_p4_vad [EXTRACTED 1.00]
- **ESP32-S3 Wireless Subsystem (Wi-Fi + BLE + RF)** — public_datasheets_esp32_s3_wifi, public_datasheets_esp32_s3_wifi_mac_baseband, public_datasheets_esp32_s3_bluetooth_le, public_datasheets_esp32_s3_ble_baseband, public_datasheets_esp32_s3_rf_module [EXTRACTED 1.00]
- **Common Espressif Security Feature Family** — public_datasheets_esp32_p4_secure_boot, public_datasheets_esp32_s2_secure_boot, public_datasheets_esp32_s3_secure_boot, public_datasheets_esp32_s2_flash_encryption, public_datasheets_esp32_s3_flash_encryption, public_datasheets_esp32_p4_xts_aes [INFERRED 0.85]
- **ESP32-S31 Multiprotocol Wireless Stack** — public_datasheets_esp32_s31_wifi6, public_datasheets_esp32_s31_bluetooth_54_le, public_datasheets_esp32_s31_bluetooth_classic, public_datasheets_esp32_s31_ieee_802154 [EXTRACTED 1.00]
- **ESP32-S31 Security Subsystem** — public_datasheets_esp32_s31_secure_boot, public_datasheets_esp32_s31_flash_psram_encryption, public_datasheets_esp32_s31_crypto_accelerators, public_datasheets_esp32_s31_huk_key_manager [EXTRACTED 1.00]
- **ESP32 RTC Low-Power Domain** — public_datasheets_esp32_rtc, public_datasheets_esp32_pmu, public_datasheets_esp32_ulp_coprocessor, public_datasheets_esp32_rtc_memory [EXTRACTED 1.00]
- **Common DevKit Hardware Controls (Buttons, USB, LED)** — public_placas_esp32_c2_boot_rst_buttons, public_placas_esp32_c3_boot_rst_buttons, public_placas_esp32_c5_reset_boot_buttons, public_placas_esp32_c2_micro_usb_port, public_placas_esp32_c3_micro_usb_port, public_placas_esp32_c5_dual_usb_c_ports [INFERRED 0.75]
- **Espressif DevKit Pinout Diagram Family (C2/C3/C5)** — public_placas_esp32_c2_devkit_pinout, public_placas_esp32_c3_devkit_pinout, public_placas_esp32_c5_devkit_pinout, public_placas_esp32_c5_espressif_branding [INFERRED 0.95]
- **RISC-V Single-Core Wireless SoC Spec Family** — public_placas_esp32_c2_specs, public_placas_esp32_c3_specs, public_placas_esp32_c5_specs [INFERRED 0.85]
- **Espressif RISC-V DevKit Board Diagrams** — public_placas_esp32_c6_board, public_placas_esp32_c61_board, public_placas_esp32_h2_board, public_placas_esp32_p4_board [INFERRED 0.85]
- **Common DevKit Programming/Flashing Interface** — public_placas_esp32_c6_reset_boot_buttons, public_placas_esp32_c61_reset_boot_buttons, public_placas_esp32_p4_reset_boot_buttons, public_placas_esp32_c6_usb_uart_ports [INFERRED 0.75]
- **ESP32-P4 EV Board Multimedia and Connectivity Peripherals** — public_placas_esp32_p4_mipi_dsi_csi, public_placas_esp32_p4_audio_subsystem, public_placas_esp32_p4_ethernet, public_placas_esp32_p4_usb_ports [EXTRACTED 1.00]
- **ESP32-S31 Audio Subsystem** — public_placas_esp32_s31_audio_codec_chip, public_placas_esp32_s31_microphone, public_placas_esp32_s31_speaker_output_port [INFERRED 0.85]
- **ESP32-S31 Connectivity Ports** — public_placas_esp32_s31_rj45_ethernet_port, public_placas_esp32_s31_usb_type_a_port, public_placas_esp32_s31_usb_serial_jtag_port, public_placas_esp32_s31_usb_type_c_uart_port [INFERRED 0.85]
- **Espressif ESP32 Dev Board Image Gallery** — public_placas_esp32_pinout_diagram, public_placas_esp32_s2_pinout_diagram, public_placas_esp32_s3_pinout_diagram, public_placas_esp32_s31_board_photo [INFERRED 0.85]
## Communities (77 total, 24 thin omitted)
### Community 1 - "ESP32 Original SoC Silicon"
Cohesion: 0.06
Nodes (46): Bluetooth v4.2 BR/EDR and LE Dual Mode, ESP32 SoC, Cryptographic Hardware Acceleration (AES, SHA-2, RSA, RNG), 8-bit DAC, Ethernet MAC with IEEE 1588, Flash Encryption, Power Management Unit / Power Modes, 448 KB ROM (+38 more)
### Community 2 - "Xtensa DevKit Board Diagrams"
Cohesion: 0.09
Nodes (31): ESP32 CP2102 USB-UART Bridge, ESP32 EN and Boot Buttons, ESP32 Micro-USB Port, ESP32-DevKitC Pinout Diagram, ESP32-S2 BOOT and RESET Buttons, ESP32-S2-DevKitC-1 Pinout Diagram, ESP32-S2 RGB LED @ IO18, ESP32-S2-SOLO Module (+23 more)
### Community 3 - "Layout and Marketplace API"
Cohesion: 0.09
Nodes (23): @emotion/react, @emotion/styled, framer-motion, googleapis, lucide-react, @mui/icons-material, @mui/material, next (+15 more)
### Community 4 - "ESP32-C2 DevKit and Branding"
Cohesion: 0.10
Nodes (28): Gear + Circuit Traces + Sprouting Plant Motif, Globe and Shield/Clock IoT Icons, ESPDocs Project Logo, Boot and RST Buttons (ESP8684-DevKitM-1), ESP8684-DevKitM-1 Pinout Diagram (ESP32-C2), Dual 2x Pin Header Castellated Layout, Micro-USB Port (ESP8684-DevKitM-1), ESP8684-MINI-1 Module with PCB Antenna (+20 more)
### Community 5 - "C6/C61 Wi-Fi 6 DevKits"
Cohesion: 0.09
Nodes (27): ESP32-C61-DevKitC-1 Pinout Diagram, ESP32-C61 RESET and BOOT Buttons, ESP32-C61 Specs: RISC-V 160MHz, Wi-Fi 6, BLE 5, ESP32-C61 UART and USB Type-C Ports, ESP32-C61-WROOM-1 Module, ESP32-C6-DevKitC-1 Pinout Diagram, ESP32-C6 RESET and BOOT Buttons, ESP32-C6 RGB LED on GPIO8 (+19 more)
### Community 6 - "Lint and Build Tooling"
Cohesion: 0.10
Nodes (19): eslint, eslint-config-next, @eslint/eslintrc, devDependencies, eslint, eslint-config-next, @eslint/eslintrc, tailwindcss (+11 more)
### Community 7 - "ESP32-C61 Silicon Subsystems"
Cohesion: 0.10
Nodes (20): Access Permission Management (APM), Digital Signature - ECDSA, ESP32-C61 SoC, Event Task Matrix (ETM), Flash/PSRAM Encryption (XTS-AES), General DMA Controller (GDMA), L1 Cache 32 KB, Power Management Unit (PMU) (+12 more)
### Community 8 - "ESP32-C3 Silicon Subsystems"
Cohesion: 0.11
Nodes (19): AES-128/256 Accelerator (FIPS PUB 197), 4096-bit eFuse Memory, ESP32-C3 Series, Flash Encryption, 22 Programmable GPIOs, HMAC and Digital Signature, Power Management Unit / RTC, QFN32 (5x5 mm) Package (+11 more)
### Community 9 - "ESP32-C5 Silicon Subsystems"
Cohesion: 0.11
Nodes (18): APM and TEE Controller, ECDSA Accelerator, ESP32-C5 Series, Event Task Matrix (ETM), External Flash/PSRAM Controller with Cache, 29 GPIOs, HP SRAM 384 KB, Key Manager (+10 more)
### Community 10 - "ESP32-H2 Silicon Subsystems"
Cohesion: 0.11
Nodes (18): TEE Controller and Access Permission Management (APM), ESP32-H2 SoC, Event Task Matrix (ETM), Flash Encryption, General DMA Controller (GDMA), 2 MB or 4 MB In-Package Flash, LP Memory 4 KB, Motor Control PWM (MCPWM) (+10 more)
### Community 11 - "ESPDocs Site Content Pillars"
Cohesion: 0.12
Nodes (15): Google Site Verification Token, 👤 Autor, Configuração do Marketplace (Opcional), 🤝 Contribuindo, 🚀 Deploy on Vercel, ⚠️ Disclaimer, ESPDocs - Documentação ESP32 em Português, 📁 Estrutura do Projeto (+7 more)
### Community 12 - "ESP32-C6 Silicon Subsystems"
Cohesion: 0.12
Nodes (17): Wi-Fi 6 (IEEE 802.11ax, 2.4 GHz), 4096-bit eFuse Memory, ESP32-C6 SoC, Event Task Matrix (ETM), General DMA Controller (GDMA), HP SRAM 512 KB, LP RISC-V 32-bit Processor (20 MHz), LP SRAM 16 KB (+9 more)
### Community 13 - "ESP32-P4 Silicon Subsystems"
Cohesion: 0.13
Nodes (17): ESP32-P4 Series SoC, Crypto Accelerators (AES, SHA, RSA, ECC, HMAC, TRNG), ECDSA Digital Signature Peripheral (ECDSA_DS), Ethernet MAC (EMAC), I3C Master and Slave, Key Manager (HUK from SRAM PUF), 768 KB HP L2MEM, RISC-V 32-bit Single-Core LP CPU (40 MHz) (+9 more)
### Community 14 - "ESP32-S3 Silicon Subsystems"
Cohesion: 0.12
Nodes (17): GDMA / VDMA / 2D-DMA Controllers, Touch Sensor, USB 2.0 High-Speed OTG, ESP32-S3 Series SoC, 4096-bit eFuse Memory, General DMA Controller (GDMA), L1 Cache, LCD Interface and DVP Camera Interface (+9 more)
### Community 15 - "ESP32-S2 Silicon Subsystems"
Cohesion: 0.13
Nodes (16): ESP32-S2 Series SoC, Crypto Accelerators (AES, SHA, RSA, HMAC, RNG, Digital Signature), Two 8-bit DACs, 4096-bit eFuse OTP, Flash Encryption, Power Management Unit and Five Power Modes, 128 KB ROM, RTC Memory (16 KB RTC SRAM) (+8 more)
### Community 16 - "ESP32-C2 Silicon Subsystems"
Cohesion: 0.13
Nodes (15): ECC Accelerator, ESP8684 Series (ESP32-C2), Flash Encryption, 14 Programmable GPIOs, In-package Flash (2 MB / 4 MB), Power Management Unit / Deep-sleep, QFN24 (4x4 mm) Package, Random Number Generator (RNG) (+7 more)
### Community 17 - "Classic Wi-Fi and BLE Radios"
Cohesion: 0.25
Nodes (8): RF Module (Balun, PA, LNA, RF Synthesizer), 2.4 GHz Wi-Fi (802.11 b/g/n), Wi-Fi MAC and Baseband, Bluetooth LE Baseband and Link Controller, Bluetooth 5 LE and Bluetooth Mesh, RF Module (Balun, PA, LNA, Antenna Switch), 2.4 GHz Wi-Fi (IEEE 802.11 b/g/n), Wi-Fi MAC and Baseband
### Community 18 - "Modern BLE and Wi-Fi 6 Radios"
Cohesion: 0.38
Nodes (7): Bluetooth LE 5.3, 2.4 GHz RF Module (Balun, PA, LNA), 2.4 GHz Wi-Fi (IEEE 802.11b/g/n), Bluetooth LE 5 / Bluetooth mesh, 2.4 GHz Wi-Fi (IEEE 802.11b/g/n), Bluetooth LE 5 (Core 6.0) / Bluetooth mesh 1.1, Dual-band Wi-Fi 6 (IEEE 802.11ax, 2.4/5 GHz)
### Community 19 - "802.15.4 Thread and Zigbee"
Cohesion: 0.38
Nodes (7): IEEE 802.15.4, Thread 1.3, Zigbee 3.0, IEEE 802.15.4, Matter, Thread, Zigbee 3.0
### Community 20 - "P4 Camera and Video Pipeline"
Cohesion: 0.29
Nodes (7): H264 Encoder, Image Processing Subsystem, Image Signal Processor (ISP), JPEG Codec, MIPI CSI, MIPI DSI, Pixel-Processing Accelerator (PPA)
### Community 21 - "CPU Cores and SIMD Extensions"
Cohesion: 0.33
Nodes (6): RISC-V 32-bit Dual-Core HP CPU (400 MHz), Processor Instruction Extensions (SIMD/AI), Xtensa Single-Core 32-bit LX7 Microprocessor (240 MHz), Single Precision Floating Point Unit (FPU), 128-bit Data Bus and Dedicated SIMD Instructions, Xtensa Dual-Core 32-bit LX7 Microprocessor (240 MHz)
### Community 22 - "JS Path Aliases"
Cohesion: 0.40
Nodes (4): compilerOptions, paths, @/*, ./*
### Community 24 - "Shared GDMA Controllers"
Cohesion: 0.67
Nodes (3): GDMA Controller, GDMA Controller (3 TX / 3 RX), GDMA Controller (3 TX / 3 RX)
### Community 25 - "RISC-V Core Speed Variants"
Cohesion: 0.67
Nodes (3): RISC-V 32-bit Single-Core CPU (120 MHz), RISC-V 32-bit Single-Core CPU (160 MHz), HP RISC-V 32-bit Processor (240 MHz)
### Community 26 - "Secure Boot (Xtensa Family)"
Cohesion: 0.67
Nodes (3): Secure Boot, Secure Boot, Secure Boot
### Community 27 - "Thread 1.4 Zigbee Radio"
Cohesion: 0.67
Nodes (3): IEEE 802.15.4 Radio, Thread 1.4, Zigbee 3.0
### Community 28 - "Bluetooth LE 5.3 Variants"
Cohesion: 0.67
Nodes (3): Bluetooth LE (Core 6.0 certified), Bluetooth LE 5.3, Bluetooth LE 5.3
### Community 29 - "RISC-V Core Clock Variants"
Cohesion: 0.67
Nodes (3): RISC-V 32-bit Single-Core Processor (160 MHz), HP RISC-V 32-bit Processor (160 MHz), RISC-V 32-bit Single-Core Processor (96 MHz)
### Community 30 - "Secure Boot (RISC-V Family)"
Cohesion: 0.67
Nodes (3): Secure Boot, Secure Boot, Secure Boot
### Community 35 - "TEE and Permission Control"
Cohesion: 0.40
Nodes (3): inter, metadata, outfit
### Community 41 - "eslint.config.mjs"
Cohesion: 0.40
Nodes (4): compat, __dirname, eslintConfig, __filename
### Community 43 - "page.jsx"
Cohesion: 0.67
Nodes (3): getOptionIcon(), iconMap, Seletor()
### Community 44 - "ConnectionsDiagram.jsx"
Cohesion: 0.67
Nodes (3): ConnectionsDiagram(), FILTER_CATEGORIES, type_colors
## Ambiguous Edges - Review These
- `ESPDocs - Documentação ESP32 em Português` → `Google Site Verification Token` [AMBIGUOUS]
public/google21a790a2c23c0ec5.html · relation: conceptually_related_to
## Knowledge Gaps
- **225 isolated node(s):** `categoryIcons`, `metadata`, `outfit`, `inter`, `metadata` (+220 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **24 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
## Suggested Questions
_Questions this graph is uniquely positioned to answer:_
- **What is the exact relationship between `ESPDocs - Documentação ESP32 em Português` and `Google Site Verification Token`?**
_Edge tagged AMBIGUOUS (relation: conceptually_related_to) - confidence is low._
- **Why does `ESP32-S3 Series SoC` connect `ESP32-S3 Silicon Subsystems` to `ESP32-P4 Silicon Subsystems`, `ESP32-S2 Silicon Subsystems`, `Classic Wi-Fi and BLE Radios`, `CPU Cores and SIMD Extensions`, `Secure Boot (RISC-V Family)`?**
_High betweenness centrality (0.014) - this node is a cross-community bridge._
- **Why does `ESP32-C6 SoC` connect `ESP32-C6 Silicon Subsystems` to `ESP32-C61 Silicon Subsystems`, `ESP32-H2 Silicon Subsystems`, `Crypto Accelerators (AES, SHA, RSA, ECC, HMAC, RNG)`, `802.15.4 Thread and Zigbee`, `Bluetooth LE 5.3 Variants`, `RISC-V Core Clock Variants`?**
_High betweenness centrality (0.012) - this node is a cross-community bridge._
- **Why does `ESP32-P4 Series SoC` connect `ESP32-P4 Silicon Subsystems` to `P4 Camera and Video Pipeline`, `CPU Cores and SIMD Extensions`, `ESP32-S3 Silicon Subsystems`, `Secure Boot (RISC-V Family)`?**
_High betweenness centrality (0.011) - this node is a cross-community bridge._
- **Are the 2 inferred relationships involving `ESP32-C6 SoC` (e.g. with `ESP32-C61 SoC` and `ESP32-H2 SoC`) actually correct?**
_`ESP32-C6 SoC` has 2 INFERRED edges - model-reasoned connections that need verification._
- **Are the 2 inferred relationships involving `ESP32-S3 Series SoC` (e.g. with `ESP32-P4 Series SoC` and `ESP32-S2 Series SoC`) actually correct?**
_`ESP32-S3 Series SoC` has 2 INFERRED edges - model-reasoned connections that need verification._
- **What connects `categoryIcons`, `metadata`, `outfit` to the rest of the system?**
_225 weakly-connected nodes found - possible documentation gaps or missing edges._
-12
View File
@@ -1,12 +0,0 @@
{
"runs": [
{
"date": "2026-07-14T11:40:04.053012+00:00",
"input_tokens": 435411,
"output_tokens": 0,
"files": 70
}
],
"total_input_tokens": 435411,
"total_output_tokens": 0
}
File diff suppressed because it is too large. Load diff
-357
View File
@@ -1,357 +0,0 @@
{
"app/api/placas/route.js": {
"mtime": 1784028542.890868,
"ast_hash": "292fa5aae92458ae0098d7fa41ccba72",
"semantic_hash": "292fa5aae92458ae0098d7fa41ccba72"
},
"app/catalogo/page.jsx": {
"mtime": 1784028542.890868,
"ast_hash": "72a4c176cf850cde1d4fe4f3ee49d73b",
"semantic_hash": "72a4c176cf850cde1d4fe4f3ee49d73b"
},
"app/comparacao/page.jsx": {
"mtime": 1784028542.890868,
"ast_hash": "5ac03d0fe6324872da30da6bab789989",
"semantic_hash": "5ac03d0fe6324872da30da6bab789989"
},
"app/frameworks/[key]/page.jsx": {
"mtime": 1784028542.8911717,
"ast_hash": "d9de72e32c9dcf7f0c31a0bf7818eafe",
"semantic_hash": "d9de72e32c9dcf7f0c31a0bf7818eafe"
},
"app/frameworks/page.jsx": {
"mtime": 1784028542.8911717,
"ast_hash": "5e279bbcefdd13b44223a87ed99325a9",
"semantic_hash": "5e279bbcefdd13b44223a87ed99325a9"
},
"app/glossario/page.jsx": {
"mtime": 1784028542.8911717,
"ast_hash": "a48fcc52da305726ba8120b09259a226",
"semantic_hash": "a48fcc52da305726ba8120b09259a226"
},
"app/layout.jsx": {
"mtime": 1784028542.8911717,
"ast_hash": "2d5c93ff40d043dcc807c7c5f479cc1e",
"semantic_hash": "2d5c93ff40d043dcc807c7c5f479cc1e"
},
"app/page.jsx": {
"mtime": 1784028542.8911717,
"ast_hash": "7889db722e90db47360774609726fe7e",
"semantic_hash": "7889db722e90db47360774609726fe7e"
},
"app/seletor/page.jsx": {
"mtime": 1784028542.8921716,
"ast_hash": "3800af380877bbc48a9a344bf9b67aba",
"semantic_hash": "3800af380877bbc48a9a344bf9b67aba"
},
"app/series/[key]/page.jsx": {
"mtime": 1784028542.893046,
"ast_hash": "cb4d219462c1262381c89a7934e41cb0",
"semantic_hash": "cb4d219462c1262381c89a7934e41cb0"
},
"app/series/page.jsx": {
"mtime": 1784028542.893046,
"ast_hash": "1993a1a26c7ecf4d4d09311acfbf4062",
"semantic_hash": "1993a1a26c7ecf4d4d09311acfbf4062"
},
"app/sobre/page.jsx": {
"mtime": 1784028542.893046,
"ast_hash": "95b946dc86f6a01506850cafb29af245",
"semantic_hash": "95b946dc86f6a01506850cafb29af245"
},
"components/BoardCard.jsx": {
"mtime": 1784028542.8931718,
"ast_hash": "20bb2df7129ddb4610e40665d35e0123",
"semantic_hash": "20bb2df7129ddb4610e40665d35e0123"
},
"components/CodeExample.jsx": {
"mtime": 1784028542.8937821,
"ast_hash": "d27b81c8e5d291bc0fbd0237d2664cfd",
"semantic_hash": "d27b81c8e5d291bc0fbd0237d2664cfd"
},
"components/ConnectionsDiagram.jsx": {
"mtime": 1784028542.8937821,
"ast_hash": "6298fff16eb50a793500b068226e0f6b",
"semantic_hash": "6298fff16eb50a793500b068226e0f6b"
},
"components/Footer.jsx": {
"mtime": 1784028542.8937821,
"ast_hash": "8301912e24a787f25f15c315312c1262",
"semantic_hash": "8301912e24a787f25f15c315312c1262"
},
"components/Header.jsx": {
"mtime": 1784028542.8937821,
"ast_hash": "ddae6c8f48e853c7e69c1601745849d6",
"semantic_hash": "ddae6c8f48e853c7e69c1601745849d6"
},
"components/Providers.jsx": {
"mtime": 1784028542.8937821,
"ast_hash": "d31db26b58629a807b7df4c4a3189772",
"semantic_hash": "d31db26b58629a807b7df4c4a3189772"
},
"components/SeriesTabMenu.jsx": {
"mtime": 1784028542.8937821,
"ast_hash": "41333d2683fb6eec4e0ce3c1e7df2b45",
"semantic_hash": "41333d2683fb6eec4e0ce3c1e7df2b45"
},
"eslint.config.mjs": {
"mtime": 1784028542.8937821,
"ast_hash": "cd28c192684b52caf16d8d1df068e272",
"semantic_hash": "cd28c192684b52caf16d8d1df068e272"
},
"jsconfig.json": {
"mtime": 1784028542.8937821,
"ast_hash": "21306b44064ae42bbbd715b1986abaf8",
"semantic_hash": "21306b44064ae42bbbd715b1986abaf8"
},
"next.config.mjs": {
"mtime": 1784028542.8937821,
"ast_hash": "21958f5752add43cc47ab0ff5172cd46",
"semantic_hash": "21958f5752add43cc47ab0ff5172cd46"
},
"package.json": {
"mtime": 1784028542.8951716,
"ast_hash": "ba7a64ba8723e44ff54603adc91751e1",
"semantic_hash": "ba7a64ba8723e44ff54603adc91751e1"
},
"postcss.config.mjs": {
"mtime": 1784028542.8951716,
"ast_hash": "675899342e765a4d16acd75a53389101",
"semantic_hash": "675899342e765a4d16acd75a53389101"
},
"public/conexoes/ESP32-C2.json": {
"mtime": 1784028542.8965435,
"ast_hash": "aad3b4f175c3dd386adbf368f15073f7",
"semantic_hash": "aad3b4f175c3dd386adbf368f15073f7"
},
"public/conexoes/ESP32-C3.json": {
"mtime": 1784028542.8967931,
"ast_hash": "5deecb15a45f0291802077cd24e4051b",
"semantic_hash": "5deecb15a45f0291802077cd24e4051b"
},
"public/conexoes/ESP32-C5.json": {
"mtime": 1784028542.8967931,
"ast_hash": "949d8facf94a56f254872c185a88d2a1",
"semantic_hash": "949d8facf94a56f254872c185a88d2a1"
},
"public/conexoes/ESP32-C6.json": {
"mtime": 1784028542.8967931,
"ast_hash": "84dceb481e501b68643300982832c8c7",
"semantic_hash": "84dceb481e501b68643300982832c8c7"
},
"public/conexoes/ESP32-C61.json": {
"mtime": 1784028542.8967931,
"ast_hash": "88aa2cadabff6bbd1ba662531e904df6",
"semantic_hash": "88aa2cadabff6bbd1ba662531e904df6"
},
"public/conexoes/ESP32-H2.json": {
"mtime": 1784028542.8967931,
"ast_hash": "61e9339e808c87642b618b322de424dd",
"semantic_hash": "61e9339e808c87642b618b322de424dd"
},
"public/conexoes/ESP32-P4.json": {
"mtime": 1784028542.8967931,
"ast_hash": "aec6bfdf220455851dea0619fa3954e8",
"semantic_hash": "aec6bfdf220455851dea0619fa3954e8"
},
"public/conexoes/ESP32-S2.json": {
"mtime": 1784028542.8967931,
"ast_hash": "4b6b0c563a63a59756227ef096141cd5",
"semantic_hash": "4b6b0c563a63a59756227ef096141cd5"
},
"public/conexoes/ESP32-S3.json": {
"mtime": 1784028542.8967931,
"ast_hash": "7d877331595d2677894a926714590c04",
"semantic_hash": "7d877331595d2677894a926714590c04"
},
"public/conexoes/ESP32-S31.json": {
"mtime": 1784028542.8971717,
"ast_hash": "0f3cd4f8f2741329ea93f18227b9f2a9",
"semantic_hash": "0f3cd4f8f2741329ea93f18227b9f2a9"
},
"public/conexoes/ESP32.json": {
"mtime": 1784028542.8971717,
"ast_hash": "0d111992e8707f75177cf8ec495519f1",
"semantic_hash": "0d111992e8707f75177cf8ec495519f1"
},
"public/exemplos/esp-adf.c": {
"mtime": 1784028542.9760828,
"ast_hash": "189f598b93c1b130dedce25d07513a30",
"semantic_hash": "189f598b93c1b130dedce25d07513a30"
},
"public/exemplos/esp-dsp.c": {
"mtime": 1784028542.9760828,
"ast_hash": "f3406d15617cf415888b07d688cdaf34",
"semantic_hash": "f3406d15617cf415888b07d688cdaf34"
},
"public/exemplos/esp-idf.c": {
"mtime": 1784028542.9760828,
"ast_hash": "28d7cf987af6c5d3a54ad1fe06571e91",
"semantic_hash": "28d7cf987af6c5d3a54ad1fe06571e91"
},
"public/exemplos/esp-matter.c": {
"mtime": 1784028542.9760828,
"ast_hash": "332c82ce14230250fd828db6e22cae44",
"semantic_hash": "332c82ce14230250fd828db6e22cae44"
},
"public/exemplos/esp-nn.c": {
"mtime": 1784028542.9760828,
"ast_hash": "186d382f96347dbae8be3b13c0252ad3",
"semantic_hash": "186d382f96347dbae8be3b13c0252ad3"
},
"public/exemplos/esp-who.c": {
"mtime": 1784028542.9760828,
"ast_hash": "2abc563b2750f0a823438a3e9b1c56c1",
"semantic_hash": "2abc563b2750f0a823438a3e9b1c56c1"
},
"public/exemplos/micropython.py": {
"mtime": 1784028542.9760828,
"ast_hash": "99c3b78148eee8632bb7772db61bdfdd",
"semantic_hash": "99c3b78148eee8632bb7772db61bdfdd"
},
"public/frameworks.json": {
"mtime": 1784028542.9760828,
"ast_hash": "3595f7219f3fcfd1b8d59ea741fab869",
"semantic_hash": "3595f7219f3fcfd1b8d59ea741fab869"
},
"public/series.json": {
"mtime": 1784044810.132013,
"ast_hash": "c6a531ffae6df025befb58cfb38f212e",
"semantic_hash": ""
},
"start.config.js": {
"mtime": 1784028543.0671756,
"ast_hash": "a6a5cda80ac9eea57d50f14872a739d2",
"semantic_hash": "a6a5cda80ac9eea57d50f14872a739d2"
},
"README.md": {
"mtime": 1784028542.8901715,
"ast_hash": "e1c8b99e874c6cddc035c7ac900c9bbd",
"semantic_hash": "e1c8b99e874c6cddc035c7ac900c9bbd"
},
"public/google21a790a2c23c0ec5.html": {
"mtime": 1784028542.9760828,
"ast_hash": "c8e349cbe0172dc98e26385e09d67cc3",
"semantic_hash": "c8e349cbe0172dc98e26385e09d67cc3"
},
"public/datasheets/ESP32-C2 (ESP8684).pdf": {
"mtime": 1784028542.9001718,
"ast_hash": "36e6ee1a52e7293510d60c7adfc0fbaf",
"semantic_hash": "36e6ee1a52e7293510d60c7adfc0fbaf"
},
"public/datasheets/ESP32-C3.pdf": {
"mtime": 1784028542.906172,
"ast_hash": "25beb64276e6bc6c5d13d032e30847d9",
"semantic_hash": "25beb64276e6bc6c5d13d032e30847d9"
},
"public/datasheets/ESP32-C5.pdf": {
"mtime": 1784028542.9111722,
"ast_hash": "c1083a9504a574282a09f557e0343d48",
"semantic_hash": "c1083a9504a574282a09f557e0343d48"
},
"public/datasheets/ESP32-C6.pdf": {
"mtime": 1784028542.9171722,
"ast_hash": "66a7b580c6afff5becf9bd326bb675d4",
"semantic_hash": "66a7b580c6afff5becf9bd326bb675d4"
},
"public/datasheets/ESP32-C61.pdf": {
"mtime": 1784028542.9231725,
"ast_hash": "2f86d54475a006e9b0e41ba329560c5f",
"semantic_hash": "2f86d54475a006e9b0e41ba329560c5f"
},
"public/datasheets/ESP32-H2.pdf": {
"mtime": 1784028542.9301724,
"ast_hash": "460ea57a62c32646d12ae0088eb1a073",
"semantic_hash": "460ea57a62c32646d12ae0088eb1a073"
},
"public/datasheets/ESP32-P4.pdf": {
"mtime": 1784028542.948173,
"ast_hash": "aa3fc8de7dfa4e7d3ff40dd9e19fdb35",
"semantic_hash": "aa3fc8de7dfa4e7d3ff40dd9e19fdb35"
},
"public/datasheets/ESP32-S2.pdf": {
"mtime": 1784028542.9561732,
"ast_hash": "1e912b14670dde07253da71147ea2ded",
"semantic_hash": "1e912b14670dde07253da71147ea2ded"
},
"public/datasheets/ESP32-S3.pdf": {
"mtime": 1784028542.9641733,
"ast_hash": "cdb8a18273a761aff071e6a665867205",
"semantic_hash": "cdb8a18273a761aff071e6a665867205"
},
"public/datasheets/ESP32-S31.pdf": {
"mtime": 1784028542.9691734,
"ast_hash": "b2f7aa8b2cc16c18815abc5a1ddd566a",
"semantic_hash": "b2f7aa8b2cc16c18815abc5a1ddd566a"
},
"public/datasheets/ESP32.pdf": {
"mtime": 1784028542.9751735,
"ast_hash": "2354c04b871b3b6b294076c1fb953522",
"semantic_hash": "2354c04b871b3b6b294076c1fb953522"
},
"public/logo.png": {
"mtime": 1784028542.9761736,
"ast_hash": "1c0eae14654c8f5427c7141029ecd29e",
"semantic_hash": "1c0eae14654c8f5427c7141029ecd29e"
},
"public/placas/esp32-c2.png": {
"mtime": 1784028542.9771736,
"ast_hash": "3480aadf17ef57e93ee5afdfd934d896",
"semantic_hash": "3480aadf17ef57e93ee5afdfd934d896"
},
"public/placas/esp32-c3.png": {
"mtime": 1784028542.9791737,
"ast_hash": "85df0510a61dee5ffa581d912f5d68c9",
"semantic_hash": "85df0510a61dee5ffa581d912f5d68c9"
},
"public/placas/esp32-c5.png": {
"mtime": 1784028542.9811738,
"ast_hash": "6a59f4e23ac9ec5e319a77a6600fa343",
"semantic_hash": "6a59f4e23ac9ec5e319a77a6600fa343"
},
"public/placas/esp32-c6.png": {
"mtime": 1784028542.9841738,
"ast_hash": "0f836b438f62bb4b6237c9318346cdf2",
"semantic_hash": "0f836b438f62bb4b6237c9318346cdf2"
},
"public/placas/esp32-c61.png": {
"mtime": 1784028542.989174,
"ast_hash": "6734034067caa41374f2a4ca5064a7d3",
"semantic_hash": "6734034067caa41374f2a4ca5064a7d3"
},
"public/placas/esp32-h2.png": {
"mtime": 1784028542.993174,
"ast_hash": "7dceb269eb019ce826ef336dd57ab52c",
"semantic_hash": "7dceb269eb019ce826ef336dd57ab52c"
},
"public/placas/esp32-p4.png": {
"mtime": 1784028543.0061743,
"ast_hash": "c144c171692850ac257d00827dc674f5",
"semantic_hash": "c144c171692850ac257d00827dc674f5"
},
"public/placas/esp32-s2.png": {
"mtime": 1784028543.0091743,
"ast_hash": "670c4a12339f32fb32af2eebdc575892",
"semantic_hash": "670c4a12339f32fb32af2eebdc575892"
},
"public/placas/esp32-s3.png": {
"mtime": 1784028543.0161746,
"ast_hash": "52b96040d9c648f7c52aa4c8adac7e47",
"semantic_hash": "52b96040d9c648f7c52aa4c8adac7e47"
},
"public/placas/esp32-s31.png": {
"mtime": 1784028543.0621755,
"ast_hash": "5b970e68abce449015851cd5966525e3",
"semantic_hash": "5b970e68abce449015851cd5966525e3"
},
"public/placas/esp32.png": {
"mtime": 1784028543.0671756,
"ast_hash": "6791837138c1c5400db2ee07c9025627",
"semantic_hash": "6791837138c1c5400db2ee07c9025627"
},
"CLAUDE.md": {
"mtime": 1784029337.8254366,
"ast_hash": "0ea9488e278d2efd15e7c0b6e7cdca83",
"semantic_hash": "0ea9488e278d2efd15e7c0b6e7cdca83"
}
}
-285
View File
@@ -1,285 +0,0 @@
# Graph Report - ESPDocs (2026-08-20)
## Corpus Check
- 47 files · ~536,186 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
- 510 nodes · 550 edges · 78 communities (53 shown, 25 thin omitted)
- Extraction: 81% EXTRACTED · 19% INFERRED · 0% AMBIGUOUS · INFERRED: 104 edges (avg confidence: 0.87)
- Token cost: 0 input · 0 output
## Graph Freshness
- Built from commit: `b1e76757`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).
## Community Hubs (Navigation)
- ESP32 Original SoC Silicon
- Xtensa DevKit Board Diagrams
- Layout and Marketplace API
- ESP32-C2 DevKit and Branding
- C6/C61 Wi-Fi 6 DevKits
- Lint and Build Tooling
- ESP32-C61 Silicon Subsystems
- ESP32-C3 Silicon Subsystems
- ESP32-C5 Silicon Subsystems
- ESP32-H2 Silicon Subsystems
- ESPDocs Site Content Pillars
- ESP32-C6 Silicon Subsystems
- ESP32-P4 Silicon Subsystems
- ESP32-S3 Silicon Subsystems
- ESP32-S2 Silicon Subsystems
- ESP32-C2 Silicon Subsystems
- Classic Wi-Fi and BLE Radios
- Modern BLE and Wi-Fi 6 Radios
- 802.15.4 Thread and Zigbee
- P4 Camera and Video Pipeline
- CPU Cores and SIMD Extensions
- JS Path Aliases
- ESP-Matter Code Example
- Shared GDMA Controllers
- RISC-V Core Speed Variants
- Secure Boot (Xtensa Family)
- Thread 1.4 Zigbee Radio
- Bluetooth LE 5.3 Variants
- RISC-V Core Clock Variants
- Secure Boot (RISC-V Family)
- ESP-NN Code Example
- ESP-WHO Code Example
- Next.js Config
- PostCSS Config
- TEE and Permission Control
- ESP-DSP Code Example
- eslint.config.mjs
- page.jsx
- ConnectionsDiagram.jsx
- page.jsx
- page.jsx
- Crypto Accelerators (AES, SHA, RSA, ECC, HMAC, RNG)
- API do Marketplace (app/api/placas/route.js)
- Comparação de Séries
- Diagramas Interativos de Conexões
- Exemplos de Código
- Frameworks ESP32 (ESP-IDF, Arduino, MicroPython)
- Google Sheets API Integration
- GOOGLE_SHEETS_API_KEY env var
- Marketplace de Placas (Catálogo)
- Material-UI
- Licença MIT
- Next.js 15 App Router
- React 19
- Séries ESP32
- Tailwind CSS 4
- Projeto não oficial (sem afiliação Espressif)
- Deploy na Vercel
## God Nodes (most connected - your core abstractions)
1. `ESP32-C5 Series` - 28 edges
2. `ESP32-S31 SoC` - 25 edges
3. `ESP32-C6 SoC` - 23 edges
4. `ESP32-H2 SoC` - 23 edges
5. `ESP32-S3 Series SoC` - 23 edges
6. `ESP32-C3 Series` - 21 edges
7. `ESP32-C61 SoC` - 21 edges
8. `ESP32-P4 Series SoC` - 21 edges
9. `ESP8684 Series (ESP32-C2)` - 17 edges
10. `ESP32-S2 Series SoC` - 17 edges
## Surprising Connections (you probably didn't know these)
- `Crypto Accelerators (AES, SHA, RSA, ECC, HMAC, TRNG)` --semantically_similar_to--> `Crypto Accelerators (SHA, AES, RSA, HMAC, RSA_DS, RNG)` [INFERRED] [semantically similar]
public/datasheets/ESP32-P4.pdf → public/datasheets/ESP32-S3.pdf
- `ULP Coprocessor (ULP-RISC-V, ULP-FSM)` --semantically_similar_to--> `ULP Coprocessor (ULP-RISC-V, ULP-FSM)` [INFERRED] [semantically similar]
public/datasheets/ESP32-S3.pdf → public/datasheets/ESP32-S2.pdf
- `RISC-V 32-bit Single-Core CPU (120 MHz)` --semantically_similar_to--> `RISC-V 32-bit Single-Core CPU (160 MHz)` [INFERRED] [semantically similar]
public/datasheets/ESP32-C2 (ESP8684).pdf → public/datasheets/ESP32-C3.pdf
- `2.4 GHz Wi-Fi (IEEE 802.11b/g/n)` --semantically_similar_to--> `2.4 GHz Wi-Fi (IEEE 802.11b/g/n)` [INFERRED] [semantically similar]
public/datasheets/ESP32-C2 (ESP8684).pdf → public/datasheets/ESP32-C3.pdf
- `Bluetooth LE 5.3` --semantically_similar_to--> `Bluetooth LE 5 / Bluetooth mesh` [INFERRED] [semantically similar]
public/datasheets/ESP32-C2 (ESP8684).pdf → public/datasheets/ESP32-C3.pdf
## Import Cycles
- None detected.
## Hyperedges (group relationships)
- **Stack frontend do ESPDocs** — readme_nextjs_app_router, readme_react19, readme_tailwind_css, readme_material_ui [EXTRACTED 1.00]
- **Fluxo de dados do Marketplace de Placas** — readme_marketplace_placas, readme_api_placas_route, readme_google_sheets_api, readme_google_sheets_api_key [INFERRED 0.85]
- **Pilares de conteúdo do ESPDocs** — readme_series_esp32, readme_frameworks, readme_comparacao, readme_diagramas_interativos, readme_exemplos_codigo, readme_marketplace_placas [EXTRACTED 1.00]
- **ESP8684 Security Subsystem** — public_datasheets_esp32_c2__esp8684__secure_boot, public_datasheets_esp32_c2__esp8684__flash_encryption, public_datasheets_esp32_c2__esp8684__ecc_accelerator, public_datasheets_esp32_c2__esp8684__sha_accelerator, public_datasheets_esp32_c2__esp8684__rng [EXTRACTED 1.00]
- **ESP32-C3 Security Subsystem** — public_datasheets_esp32_c3_aes_accelerator, public_datasheets_esp32_c3_sha_accelerator, public_datasheets_esp32_c3_rsa_accelerator, public_datasheets_esp32_c3_hmac_digital_signature, public_datasheets_esp32_c3_secure_boot, public_datasheets_esp32_c3_flash_encryption, public_datasheets_esp32_c3_rng [EXTRACTED 1.00]
- **ESP32-C5 Multiprotocol Radio Stack** — public_datasheets_esp32_c5_wi_fi_6_dual_band, public_datasheets_esp32_c5_bluetooth_le_5, public_datasheets_esp32_c5_ieee_802_15_4, public_datasheets_esp32_c5_thread_1_4, public_datasheets_esp32_c5_zigbee_3_0, public_datasheets_esp32_c5_rf_module [EXTRACTED 1.00]
- **ESP32-C6 coexisting multi-protocol radio stack sharing one antenna** — public_datasheets_esp32_c6_wi_fi_6, public_datasheets_esp32_c6_bluetooth_le_5_3, public_datasheets_esp32_c6_ieee_802_15_4, public_datasheets_esp32_c6_rf_module [EXTRACTED 1.00]
- **ESP32-C61 security subsystem** — public_datasheets_esp32_c61_secure_boot, public_datasheets_esp32_c61_flash_psram_encryption, public_datasheets_esp32_c61_ecdsa, public_datasheets_esp32_c61_trng, public_datasheets_esp32_c61_apm, public_datasheets_esp32_c61_power_glitch_detector [EXTRACTED 1.00]
- **ESP32-H2 802.15.4 application-layer protocols** — public_datasheets_esp32_h2_ieee_802_15_4, public_datasheets_esp32_h2_thread, public_datasheets_esp32_h2_zigbee_3_0, public_datasheets_esp32_h2_matter [EXTRACTED 1.00]
- **ESP32-P4 Image and Voice Processing Pipeline** — public_datasheets_esp32_p4_isp, public_datasheets_esp32_p4_jpeg_codec, public_datasheets_esp32_p4_ppa, public_datasheets_esp32_p4_h264_encoder, public_datasheets_esp32_p4_mipi_csi, public_datasheets_esp32_p4_mipi_dsi, public_datasheets_esp32_p4_vad [EXTRACTED 1.00]
- **ESP32-S3 Wireless Subsystem (Wi-Fi + BLE + RF)** — public_datasheets_esp32_s3_wifi, public_datasheets_esp32_s3_wifi_mac_baseband, public_datasheets_esp32_s3_bluetooth_le, public_datasheets_esp32_s3_ble_baseband, public_datasheets_esp32_s3_rf_module [EXTRACTED 1.00]
- **Common Espressif Security Feature Family** — public_datasheets_esp32_p4_secure_boot, public_datasheets_esp32_s2_secure_boot, public_datasheets_esp32_s3_secure_boot, public_datasheets_esp32_s2_flash_encryption, public_datasheets_esp32_s3_flash_encryption, public_datasheets_esp32_p4_xts_aes [INFERRED 0.85]
- **ESP32-S31 Multiprotocol Wireless Stack** — public_datasheets_esp32_s31_wifi6, public_datasheets_esp32_s31_bluetooth_54_le, public_datasheets_esp32_s31_bluetooth_classic, public_datasheets_esp32_s31_ieee_802154 [EXTRACTED 1.00]
- **ESP32-S31 Security Subsystem** — public_datasheets_esp32_s31_secure_boot, public_datasheets_esp32_s31_flash_psram_encryption, public_datasheets_esp32_s31_crypto_accelerators, public_datasheets_esp32_s31_huk_key_manager [EXTRACTED 1.00]
- **ESP32 RTC Low-Power Domain** — public_datasheets_esp32_rtc, public_datasheets_esp32_pmu, public_datasheets_esp32_ulp_coprocessor, public_datasheets_esp32_rtc_memory [EXTRACTED 1.00]
- **Common DevKit Hardware Controls (Buttons, USB, LED)** — public_placas_esp32_c2_boot_rst_buttons, public_placas_esp32_c3_boot_rst_buttons, public_placas_esp32_c5_reset_boot_buttons, public_placas_esp32_c2_micro_usb_port, public_placas_esp32_c3_micro_usb_port, public_placas_esp32_c5_dual_usb_c_ports [INFERRED 0.75]
- **Espressif DevKit Pinout Diagram Family (C2/C3/C5)** — public_placas_esp32_c2_devkit_pinout, public_placas_esp32_c3_devkit_pinout, public_placas_esp32_c5_devkit_pinout, public_placas_esp32_c5_espressif_branding [INFERRED 0.95]
- **RISC-V Single-Core Wireless SoC Spec Family** — public_placas_esp32_c2_specs, public_placas_esp32_c3_specs, public_placas_esp32_c5_specs [INFERRED 0.85]
- **Espressif RISC-V DevKit Board Diagrams** — public_placas_esp32_c6_board, public_placas_esp32_c61_board, public_placas_esp32_h2_board, public_placas_esp32_p4_board [INFERRED 0.85]
- **Common DevKit Programming/Flashing Interface** — public_placas_esp32_c6_reset_boot_buttons, public_placas_esp32_c61_reset_boot_buttons, public_placas_esp32_p4_reset_boot_buttons, public_placas_esp32_c6_usb_uart_ports [INFERRED 0.75]
- **ESP32-P4 EV Board Multimedia and Connectivity Peripherals** — public_placas_esp32_p4_mipi_dsi_csi, public_placas_esp32_p4_audio_subsystem, public_placas_esp32_p4_ethernet, public_placas_esp32_p4_usb_ports [EXTRACTED 1.00]
- **ESP32-S31 Audio Subsystem** — public_placas_esp32_s31_audio_codec_chip, public_placas_esp32_s31_microphone, public_placas_esp32_s31_speaker_output_port [INFERRED 0.85]
- **ESP32-S31 Connectivity Ports** — public_placas_esp32_s31_rj45_ethernet_port, public_placas_esp32_s31_usb_type_a_port, public_placas_esp32_s31_usb_serial_jtag_port, public_placas_esp32_s31_usb_type_c_uart_port [INFERRED 0.85]
- **Espressif ESP32 Dev Board Image Gallery** — public_placas_esp32_pinout_diagram, public_placas_esp32_s2_pinout_diagram, public_placas_esp32_s3_pinout_diagram, public_placas_esp32_s31_board_photo [INFERRED 0.85]
## Communities (78 total, 25 thin omitted)
### Community 1 - "ESP32 Original SoC Silicon"
Cohesion: 0.06
Nodes (46): Bluetooth v4.2 BR/EDR and LE Dual Mode, ESP32 SoC, Cryptographic Hardware Acceleration (AES, SHA-2, RSA, RNG), 8-bit DAC, Ethernet MAC with IEEE 1588, Flash Encryption, Power Management Unit / Power Modes, 448 KB ROM (+38 more)
### Community 2 - "Xtensa DevKit Board Diagrams"
Cohesion: 0.09
Nodes (31): ESP32 CP2102 USB-UART Bridge, ESP32 EN and Boot Buttons, ESP32 Micro-USB Port, ESP32-DevKitC Pinout Diagram, ESP32-S2 BOOT and RESET Buttons, ESP32-S2-DevKitC-1 Pinout Diagram, ESP32-S2 RGB LED @ IO18, ESP32-S2-SOLO Module (+23 more)
### Community 3 - "Layout and Marketplace API"
Cohesion: 0.09
Nodes (23): @emotion/react, @emotion/styled, framer-motion, googleapis, dependencies, @emotion/react, @emotion/styled, framer-motion (+15 more)
### Community 4 - "ESP32-C2 DevKit and Branding"
Cohesion: 0.10
Nodes (28): Gear + Circuit Traces + Sprouting Plant Motif, Globe and Shield/Clock IoT Icons, ESPDocs Project Logo, Boot and RST Buttons (ESP8684-DevKitM-1), ESP8684-DevKitM-1 Pinout Diagram (ESP32-C2), Dual 2x Pin Header Castellated Layout, Micro-USB Port (ESP8684-DevKitM-1), ESP8684-MINI-1 Module with PCB Antenna (+20 more)
### Community 5 - "C6/C61 Wi-Fi 6 DevKits"
Cohesion: 0.09
Nodes (27): ESP32-C61-DevKitC-1 Pinout Diagram, ESP32-C61 RESET and BOOT Buttons, ESP32-C61 Specs: RISC-V 160MHz, Wi-Fi 6, BLE 5, ESP32-C61 UART and USB Type-C Ports, ESP32-C61-WROOM-1 Module, ESP32-C6-DevKitC-1 Pinout Diagram, ESP32-C6 RESET and BOOT Buttons, ESP32-C6 RGB LED on GPIO8 (+19 more)
### Community 6 - "Lint and Build Tooling"
Cohesion: 0.10
Nodes (19): eslint, eslint-config-next, @eslint/eslintrc, devDependencies, eslint, eslint-config-next, @eslint/eslintrc, tailwindcss (+11 more)
### Community 7 - "ESP32-C61 Silicon Subsystems"
Cohesion: 0.10
Nodes (20): Access Permission Management (APM), Digital Signature - ECDSA, ESP32-C61 SoC, Event Task Matrix (ETM), Flash/PSRAM Encryption (XTS-AES), General DMA Controller (GDMA), L1 Cache 32 KB, Power Management Unit (PMU) (+12 more)
### Community 8 - "ESP32-C3 Silicon Subsystems"
Cohesion: 0.11
Nodes (19): AES-128/256 Accelerator (FIPS PUB 197), 4096-bit eFuse Memory, ESP32-C3 Series, Flash Encryption, 22 Programmable GPIOs, HMAC and Digital Signature, Power Management Unit / RTC, QFN32 (5x5 mm) Package (+11 more)
### Community 9 - "ESP32-C5 Silicon Subsystems"
Cohesion: 0.11
Nodes (18): APM and TEE Controller, ECDSA Accelerator, ESP32-C5 Series, Event Task Matrix (ETM), External Flash/PSRAM Controller with Cache, 29 GPIOs, HP SRAM 384 KB, Key Manager (+10 more)
### Community 10 - "ESP32-H2 Silicon Subsystems"
Cohesion: 0.11
Nodes (18): TEE Controller and Access Permission Management (APM), ESP32-H2 SoC, Event Task Matrix (ETM), Flash Encryption, General DMA Controller (GDMA), 2 MB or 4 MB In-Package Flash, LP Memory 4 KB, Motor Control PWM (MCPWM) (+10 more)
### Community 12 - "ESP32-C6 Silicon Subsystems"
Cohesion: 0.12
Nodes (17): Wi-Fi 6 (IEEE 802.11ax, 2.4 GHz), 4096-bit eFuse Memory, ESP32-C6 SoC, Event Task Matrix (ETM), General DMA Controller (GDMA), HP SRAM 512 KB, LP RISC-V 32-bit Processor (20 MHz), LP SRAM 16 KB (+9 more)
### Community 13 - "ESP32-P4 Silicon Subsystems"
Cohesion: 0.13
Nodes (17): ESP32-P4 Series SoC, Crypto Accelerators (AES, SHA, RSA, ECC, HMAC, TRNG), ECDSA Digital Signature Peripheral (ECDSA_DS), Ethernet MAC (EMAC), I3C Master and Slave, Key Manager (HUK from SRAM PUF), 768 KB HP L2MEM, RISC-V 32-bit Single-Core LP CPU (40 MHz) (+9 more)
### Community 14 - "ESP32-S3 Silicon Subsystems"
Cohesion: 0.12
Nodes (17): GDMA / VDMA / 2D-DMA Controllers, Touch Sensor, USB 2.0 High-Speed OTG, ESP32-S3 Series SoC, 4096-bit eFuse Memory, General DMA Controller (GDMA), L1 Cache, LCD Interface and DVP Camera Interface (+9 more)
### Community 15 - "ESP32-S2 Silicon Subsystems"
Cohesion: 0.13
Nodes (16): ESP32-S2 Series SoC, Crypto Accelerators (AES, SHA, RSA, HMAC, RNG, Digital Signature), Two 8-bit DACs, 4096-bit eFuse OTP, Flash Encryption, Power Management Unit and Five Power Modes, 128 KB ROM, RTC Memory (16 KB RTC SRAM) (+8 more)
### Community 16 - "ESP32-C2 Silicon Subsystems"
Cohesion: 0.13
Nodes (15): ECC Accelerator, ESP8684 Series (ESP32-C2), Flash Encryption, 14 Programmable GPIOs, In-package Flash (2 MB / 4 MB), Power Management Unit / Deep-sleep, QFN24 (4x4 mm) Package, Random Number Generator (RNG) (+7 more)
### Community 17 - "Classic Wi-Fi and BLE Radios"
Cohesion: 0.25
Nodes (8): RF Module (Balun, PA, LNA, RF Synthesizer), 2.4 GHz Wi-Fi (802.11 b/g/n), Wi-Fi MAC and Baseband, Bluetooth LE Baseband and Link Controller, Bluetooth 5 LE and Bluetooth Mesh, RF Module (Balun, PA, LNA, Antenna Switch), 2.4 GHz Wi-Fi (IEEE 802.11 b/g/n), Wi-Fi MAC and Baseband
### Community 18 - "Modern BLE and Wi-Fi 6 Radios"
Cohesion: 0.38
Nodes (7): Bluetooth LE 5.3, 2.4 GHz RF Module (Balun, PA, LNA), 2.4 GHz Wi-Fi (IEEE 802.11b/g/n), Bluetooth LE 5 / Bluetooth mesh, 2.4 GHz Wi-Fi (IEEE 802.11b/g/n), Bluetooth LE 5 (Core 6.0) / Bluetooth mesh 1.1, Dual-band Wi-Fi 6 (IEEE 802.11ax, 2.4/5 GHz)
### Community 19 - "802.15.4 Thread and Zigbee"
Cohesion: 0.38
Nodes (7): IEEE 802.15.4, Thread 1.3, Zigbee 3.0, IEEE 802.15.4, Matter, Thread, Zigbee 3.0
### Community 20 - "P4 Camera and Video Pipeline"
Cohesion: 0.29
Nodes (7): H264 Encoder, Image Processing Subsystem, Image Signal Processor (ISP), JPEG Codec, MIPI CSI, MIPI DSI, Pixel-Processing Accelerator (PPA)
### Community 21 - "CPU Cores and SIMD Extensions"
Cohesion: 0.33
Nodes (6): RISC-V 32-bit Dual-Core HP CPU (400 MHz), Processor Instruction Extensions (SIMD/AI), Xtensa Single-Core 32-bit LX7 Microprocessor (240 MHz), Single Precision Floating Point Unit (FPU), 128-bit Data Bus and Dedicated SIMD Instructions, Xtensa Dual-Core 32-bit LX7 Microprocessor (240 MHz)
### Community 22 - "JS Path Aliases"
Cohesion: 0.40
Nodes (4): compilerOptions, paths, @/*, ./*
### Community 24 - "Shared GDMA Controllers"
Cohesion: 0.67
Nodes (3): GDMA Controller, GDMA Controller (3 TX / 3 RX), GDMA Controller (3 TX / 3 RX)
### Community 25 - "RISC-V Core Speed Variants"
Cohesion: 0.67
Nodes (3): RISC-V 32-bit Single-Core CPU (120 MHz), RISC-V 32-bit Single-Core CPU (160 MHz), HP RISC-V 32-bit Processor (240 MHz)
### Community 26 - "Secure Boot (Xtensa Family)"
Cohesion: 0.67
Nodes (3): Secure Boot, Secure Boot, Secure Boot
### Community 27 - "Thread 1.4 Zigbee Radio"
Cohesion: 0.67
Nodes (3): IEEE 802.15.4 Radio, Thread 1.4, Zigbee 3.0
### Community 28 - "Bluetooth LE 5.3 Variants"
Cohesion: 0.67
Nodes (3): Bluetooth LE (Core 6.0 certified), Bluetooth LE 5.3, Bluetooth LE 5.3
### Community 29 - "RISC-V Core Clock Variants"
Cohesion: 0.67
Nodes (3): RISC-V 32-bit Single-Core Processor (160 MHz), HP RISC-V 32-bit Processor (160 MHz), RISC-V 32-bit Single-Core Processor (96 MHz)
### Community 30 - "Secure Boot (RISC-V Family)"
Cohesion: 0.67
Nodes (3): Secure Boot, Secure Boot, Secure Boot
### Community 31 - "ESP-NN Code Example"
Cohesion: 0.13
Nodes (14): 👤 Autor, Configuração do Marketplace (Opcional), 🤝 Contribuindo, 🚀 Deploy on Vercel, ⚠️ Disclaimer, ESPDocs - Documentação ESP32 em Português, 📁 Estrutura do Projeto, Executar em Desenvolvimento (+6 more)
### Community 35 - "TEE and Permission Control"
Cohesion: 0.40
Nodes (3): inter, metadata, outfit
### Community 41 - "eslint.config.mjs"
Cohesion: 0.40
Nodes (4): compat, __dirname, eslintConfig, __filename
### Community 43 - "page.jsx"
Cohesion: 0.67
Nodes (3): getOptionIcon(), iconMap, Seletor()
### Community 44 - "ConnectionsDiagram.jsx"
Cohesion: 0.67
Nodes (3): ConnectionsDiagram(), FILTER_CATEGORIES, type_colors
## Knowledge Gaps
- **225 isolated node(s):** `categoryIcons`, `metadata`, `outfit`, `inter`, `metadata` (+220 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **25 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
## Suggested Questions
_Questions this graph is uniquely positioned to answer:_
- **Why does `ESP32-S3 Series SoC` connect `ESP32-S3 Silicon Subsystems` to `ESP32-P4 Silicon Subsystems`, `ESP32-S2 Silicon Subsystems`, `Classic Wi-Fi and BLE Radios`, `CPU Cores and SIMD Extensions`, `Secure Boot (RISC-V Family)`?**
_High betweenness centrality (0.014) - this node is a cross-community bridge._
- **Why does `ESP32-C6 SoC` connect `ESP32-C6 Silicon Subsystems` to `ESP32-C61 Silicon Subsystems`, `ESP32-H2 Silicon Subsystems`, `Crypto Accelerators (AES, SHA, RSA, ECC, HMAC, RNG)`, `802.15.4 Thread and Zigbee`, `Bluetooth LE 5.3 Variants`, `RISC-V Core Clock Variants`?**
_High betweenness centrality (0.012) - this node is a cross-community bridge._
- **Why does `ESP32-P4 Series SoC` connect `ESP32-P4 Silicon Subsystems` to `P4 Camera and Video Pipeline`, `CPU Cores and SIMD Extensions`, `ESP32-S3 Silicon Subsystems`, `Secure Boot (RISC-V Family)`?**
_High betweenness centrality (0.011) - this node is a cross-community bridge._
- **Are the 2 inferred relationships involving `ESP32-C6 SoC` (e.g. with `ESP32-C61 SoC` and `ESP32-H2 SoC`) actually correct?**
_`ESP32-C6 SoC` has 2 INFERRED edges - model-reasoned connections that need verification._
- **Are the 2 inferred relationships involving `ESP32-S3 Series SoC` (e.g. with `ESP32-P4 Series SoC` and `ESP32-S2 Series SoC`) actually correct?**
_`ESP32-S3 Series SoC` has 2 INFERRED edges - model-reasoned connections that need verification._
- **What connects `categoryIcons`, `metadata`, `outfit` to the rest of the system?**
_225 weakly-connected nodes found - possible documentation gaps or missing edges._
- **Should `ESP32 Original SoC Silicon` be split into smaller, more focused modules?**
_Cohesion score 0.06086956521739131 - nodes in this community are weakly interconnected._
@@ -1 +0,0 @@
{"nodes": [{"id": "home_lucas_documents_pessoal_espdocs_package_json", "label": "package.json", "file_type": "code", "source_file": "package.json", "source_location": "L1"}, {"id": "home_lucas_documents_pessoal_espdocs_package_name", "label": "name", "file_type": "code", "source_file": "package.json", "source_location": "L2"}, {"id": "home_lucas_documents_pessoal_espdocs_package_version", "label": "version", "file_type": "code", "source_file": "package.json", "source_location": "L3"}, {"id": "home_lucas_documents_pessoal_espdocs_package_private", "label": "private", "file_type": "code", "source_file": "package.json", "source_location": "L4"}, {"id": "home_lucas_documents_pessoal_espdocs_package_scripts", "label": "scripts", "file_type": "code", "source_file": "package.json", "source_location": "L5"}, {"id": "home_lucas_documents_pessoal_espdocs_package_scripts_dev", "label": "dev", "file_type": "code", "source_file": "package.json", "source_location": "L6"}, {"id": "home_lucas_documents_pessoal_espdocs_package_scripts_build", "label": "build", "file_type": "code", "source_file": "package.json", "source_location": "L7"}, {"id": "home_lucas_documents_pessoal_espdocs_package_scripts_start", "label": "start", "file_type": "code", "source_file": "package.json", "source_location": "L8"}, {"id": "home_lucas_documents_pessoal_espdocs_package_scripts_lint", "label": "lint", "file_type": "code", "source_file": "package.json", "source_location": "L9"}, {"id": "home_lucas_documents_pessoal_espdocs_package_dependencies", "label": "dependencies", "file_type": "code", "source_file": "package.json", "source_location": "L11"}, {"id": "home_lucas_documents_pessoal_espdocs_package_dependencies_emotion_react", "label": "@emotion/react", "file_type": "code", "source_file": "package.json", "source_location": "L12"}, {"id": "emotion_react", "label": "@emotion/react", "file_type": "concept", "source_file": "package.json", "source_location": "L12"}, {"id": "home_lucas_documents_pessoal_espdocs_package_dependencies_emotion_styled", "label": "@emotion/styled", "file_type": "code", "source_file": "package.json", "source_location": "L13"}, {"id": "emotion_styled", "label": "@emotion/styled", "file_type": "concept", "source_file": "package.json", "source_location": "L13"}, {"id": "home_lucas_documents_pessoal_espdocs_package_dependencies_mui_icons_material", "label": "@mui/icons-material", "file_type": "code", "source_file": "package.json", "source_location": "L14"}, {"id": "mui_icons_material", "label": "@mui/icons-material", "file_type": "concept", "source_file": "package.json", "source_location": "L14"}, {"id": "home_lucas_documents_pessoal_espdocs_package_dependencies_mui_material", "label": "@mui/material", "file_type": "code", "source_file": "package.json", "source_location": "L15"}, {"id": "mui_material", "label": "@mui/material", "file_type": "concept", "source_file": "package.json", "source_location": "L15"}, {"id": "home_lucas_documents_pessoal_espdocs_package_dependencies_framer_motion", "label": "framer-motion", "file_type": "code", "source_file": "package.json", "source_location": "L16"}, {"id": "framer_motion", "label": "framer-motion", "file_type": "concept", "source_file": "package.json", "source_location": "L16"}, {"id": "home_lucas_documents_pessoal_espdocs_package_dependencies_googleapis", "label": "googleapis", "file_type": "code", "source_file": "package.json", "source_location": "L17"}, {"id": "googleapis", "label": "googleapis", "file_type": "concept", "source_file": "package.json", "source_location": "L17"}, {"id": "home_lucas_documents_pessoal_espdocs_package_dependencies_lucide_react", "label": "lucide-react", "file_type": "code", "source_file": "package.json", "source_location": "L18"}, {"id": "lucide_react", "label": "lucide-react", "file_type": "concept", "source_file": "package.json", "source_location": "L18"}, {"id": "home_lucas_documents_pessoal_espdocs_package_dependencies_next", "label": "next", "file_type": "code", "source_file": "package.json", "source_location": "L19"}, {"id": "next", "label": "next", "file_type": "concept", "source_file": "package.json", "source_location": "L19"}, {"id": "home_lucas_documents_pessoal_espdocs_package_dependencies_next_themes", "label": "next-themes", "file_type": "code", "source_file": "package.json", "source_location": "L20"}, {"id": "next_themes", "label": "next-themes", "file_type": "concept", "source_file": "package.json", "source_location": "L20"}, {"id": "home_lucas_documents_pessoal_espdocs_package_dependencies_react", "label": "react", "file_type": "code", "source_file": "package.json", "source_location": "L21"}, {"id": "react", "label": "react", "file_type": "concept", "source_file": "package.json", "source_location": "L21"}, {"id": "home_lucas_documents_pessoal_espdocs_package_dependencies_react_dom", "label": "react-dom", "file_type": "code", "source_file": "package.json", "source_location": "L22"}, {"id": "react_dom", "label": "react-dom", "file_type": "Line truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "home_lucas_documents_pessoal_espdocs_claude_md", "label": "CLAUDE.md", "file_type": "document", "source_file": "CLAUDE.md", "source_location": "L1"}, {"id": "home_lucas_documents_pessoal_espdocs_claude_graphify", "label": "graphify", "file_type": "document", "source_file": "CLAUDE.md", "source_location": "L1"}], "edges": [{"source": "home_lucas_documents_pessoal_espdocs_claude_md", "target": "home_lucas_documents_pessoal_espdocs_claude_graphify", "relation": "contains", "confidence": "EXTRACTED", "source_file": "CLAUDE.md", "source_location": "L1", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0}
@@ -1 +0,0 @@
{"nodes": [{"id": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_dsp_c", "label": "esp-dsp.c", "file_type": "code", "source_file": "public/exemplos/esp-dsp.c", "source_location": "L1"}, {"id": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_dsp_app_main", "label": "app_main()", "file_type": "code", "source_file": "public/exemplos/esp-dsp.c", "source_location": "L6", "_callable": true}], "edges": [{"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_dsp_c", "target": "stdio", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-dsp.c", "source_location": "L1", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_dsp_c", "target": "esp_dsp", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-dsp.c", "source_location": "L2", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_dsp_c", "target": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_dsp_app_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-dsp.c", "source_location": "L6", "weight": 1.0}], "raw_calls": [{"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_dsp_app_main", "callee": "dsps_fft2r_init_fc32", "is_member_call": false, "source_file": "public/exemplos/esp-dsp.c", "source_location": "L13", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_dsp_app_main", "callee": "printf", "is_member_call": false, "source_file": "public/exemplos/esp-dsp.c", "source_location": "L15", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_dsp_app_main", "callee": "printf", "is_member_call": false, "source_file": "public/exemplos/esp-dsp.c", "source_location": "L19", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_dsp_app_main", "callee": "printf", "is_member_call": false, "source_file": "public/exemplos/esp-dsp.c", "source_location": "L21", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_dsp_app_main", "callee": "printf", "is_member_call": false, "source_file": "public/exemplos/esp-dsp.c", "source_location": "L23", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_dsp_app_main", "callee": "dsps_mulc_f32", "is_member_call": false, "source_file": "public/exemplos/esp-dsp.c", "source_location": "L26", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_dsp_app_main", "callee": "dsps_mul_f32", "is_member_call": false, "source_file": "public/exemplos/esp-dsp.c", "source_location": "L27", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_dsp_app_main", "callee": "dsps_sum_f32", "is_member_call": false, "source_file": "public/exemplos/esp-dsp.c", "source_location": "L31", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_dsp_app_main", "callee": "sqrtf", "is_member_call": false, "source_file": "public/exemplos/esp-dsp.c", "source_location": "L34", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_dsp_app_main", "callee": "printf", "is_member_call": false, "source_file": "public/exemplos/esp-dsp.c", "source_location": "L36", "receiver": null}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_adf_c", "label": "esp-adf.c", "file_type": "code", "source_file": "public/exemplos/esp-adf.c", "source_location": "L1"}, {"id": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_adf_app_main", "label": "app_main()", "file_type": "code", "source_file": "public/exemplos/esp-adf.c", "source_location": "L14", "_callable": true}], "edges": [{"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_adf_c", "target": "esp_log", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-adf.c", "source_location": "L1", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_adf_c", "target": "audio_pipeline", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-adf.c", "source_location": "L2", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_adf_c", "target": "audio_element", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-adf.c", "source_location": "L3", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_adf_c", "target": "audio_event_iface", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-adf.c", "source_location": "L4", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_adf_c", "target": "audio_common", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-adf.c", "source_location": "L5", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_adf_c", "target": "i2s_stream", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-adf.c", "source_location": "L6", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_adf_c", "target": "mp3_decoder", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-adf.c", "source_location": "L7", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_adf_c", "target": "fatfs_stream", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-adf.c", "source_location": "L8", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_adf_c", "target": "esp_peripherals", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-adf.c", "source_location": "L9", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_adf_c", "target": "periph_sdcard", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-adf.c", "source_location": "L10", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_adf_c", "target": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_adf_app_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-adf.c", "source_location": "L14", "weight": 1.0}], "raw_calls": [{"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_adf_app_main", "callee": "DEFAULT_ESP_PERIPH_SET_CONFIG", "is_member_call": false, "source_file": "public/exemplos/esp-adf.c", "source_location": "L17", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_adf_app_main", "callee": "esp_periph_set_init", "is_member_call": false, "source_file": "public/exemplos/esp-adf.c", "source_location": "L18", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_adf_app_main", "callee": "periph_sdcard_init", "is_member_call": false, "source_file": "public/exemplos/esp-adf.c", "source_location": "L22", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_adf_app_main", "callee": "esp_periph_start", "is_member_call": false, "source_file": "public/exemplos/esp-adf.c", "source_location": "L23", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_adf_app_main", "callee": "periph_sdcard_wait_for_ready", "is_member_call": false, "source_file": "public/exemplos/esp-adf.c", "source_location": "L26", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_adf_app_main", "callee": "ESP_LOGI", "is_member_call": false, "source_file": "public/exemplos/esp-adf.c", "source_location": "L28", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_adf_app_main", "callee": "DEFAULT_AUDIO_PIPELINE_CONFIG", "is_member_call": false, "source_file": "public/exemplos/esp-adf.c", "source_location": "L32", "receiver": null}, {"caller_niLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_matter_c", "label": "esp-matter.c", "file_type": "code", "source_file": "public/exemplos/esp-matter.c", "source_location": "L1"}, {"id": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_matter_app_event_cb", "label": "app_event_cb()", "file_type": "code", "source_file": "public/exemplos/esp-matter.c", "source_location": "L9", "_callable": true}, {"id": "esp_matter_event_t", "label": "esp_matter_event_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/home/lucas/Documents/Pessoal/espdocs/public/exemplos/esp-matter.c"}, {"id": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_matter_app_main", "label": "app_main()", "file_type": "code", "source_file": "public/exemplos/esp-matter.c", "source_location": "L27", "_callable": true}], "edges": [{"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_matter_c", "target": "stdio", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-matter.c", "source_location": "L1", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_matter_c", "target": "esp_log", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-matter.c", "source_location": "L2", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_matter_c", "target": "esp_matter", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-matter.c", "source_location": "L3", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_matter_c", "target": "esp_matter_controller", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-matter.c", "source_location": "L4", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_matter_c", "target": "nvs_flash", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-matter.c", "source_location": "L5", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_matter_c", "target": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_matter_app_event_cb", "relation": "contains", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-matter.c", "source_location": "L9", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_matter_app_event_cb", "target": "esp_matter_event_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-matter.c", "source_location": "L9", "weight": 1.0, "context": "parameter_type"}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_matter_c", "target": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_matter_app_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-matter.c", "source_location": "L27", "weight": 1.0}], "raw_calls": [{"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_matter_app_event_cb", "callee": "esp_matter_attribute_get", "is_member_call": false, "source_file": "public/exemplos/esp-matter.c", "source_location": "L16", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_matter_app_event_cb", "callee": "ESP_LOGI", "is_member_call": false, "source_file": "public/exemplos/esp-matter.c", "source_location": "L18", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_matter_app_main", "callee": "nvs_flash_init", "is_member_call": false, "source_file": "public/exemplos/esp-matter.c", "source_location": "L30", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_matter_app_main", "callee": "ESP_ERROR_CHECK", "is_member_call": false, "source_file": "public/exemplos/esp-matter.c", "source_location": "L32", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_matter_app_main", "callee": "nvs_flash_erase", "is_member_call": false, "source_file": "public/exemplos/esp-matter.c", "source_location": "L32", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_matter_app_main", "callee": "ESP_ERROR_CHECK", "is_member_call": false, "source_file": "public/exemplos/esp-matter.c", "source_location": "L33", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_matter_app_main", "callee": "nvs_flash_init", "is_member_call": false, "source_file": "public/exemplos/esp-matter.c", "source_location": "L33", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_matter_app_main", "callee": "create", "is_member_call": false, "source_file": "public/exemplos/esp-matter.c", "source_location": "L37", "receiver"Line truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_nn_c", "label": "esp-nn.c", "file_type": "code", "source_file": "public/exemplos/esp-nn.c", "source_location": "L1"}, {"id": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_nn_print_array", "label": "print_array()", "file_type": "code", "source_file": "public/exemplos/esp-nn.c", "source_location": "L8", "_callable": true}, {"id": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_nn_app_main", "label": "app_main()", "file_type": "code", "source_file": "public/exemplos/esp-nn.c", "source_location": "L16", "_callable": true}], "edges": [{"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_nn_c", "target": "stdio", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-nn.c", "source_location": "L1", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_nn_c", "target": "esp_nn", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-nn.c", "source_location": "L2", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_nn_c", "target": "esp_nn_defs", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-nn.c", "source_location": "L3", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_nn_c", "target": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_nn_print_array", "relation": "contains", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-nn.c", "source_location": "L8", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_nn_c", "target": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_nn_app_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-nn.c", "source_location": "L16", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_nn_app_main", "target": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_nn_print_array", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-nn.c", "source_location": "L38", "weight": 1.0}], "raw_calls": [{"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_nn_print_array", "callee": "printf", "is_member_call": false, "source_file": "public/exemplos/esp-nn.c", "source_location": "L9", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_nn_print_array", "callee": "printf", "is_member_call": false, "source_file": "public/exemplos/esp-nn.c", "source_location": "L11", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_nn_print_array", "callee": "printf", "is_member_call": false, "source_file": "public/exemplos/esp-nn.c", "source_location": "L13", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_nn_app_main", "callee": "esp_nn_mul_mat_16x8_16", "is_member_call": false, "source_file": "public/exemplos/esp-nn.c", "source_location": "L35", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_nn_app_main", "callee": "esp_nn_relu_16", "is_member_call": false, "source_file": "public/exemplos/esp-nn.c", "source_location": "L41", "receiver": null}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "home_lucas_documents_pessoal_espdocs_jsconfig_json", "label": "jsconfig.json", "file_type": "code", "source_file": "jsconfig.json", "source_location": "L1"}, {"id": "home_lucas_documents_pessoal_espdocs_jsconfig_compileroptions", "label": "compilerOptions", "file_type": "code", "source_file": "jsconfig.json", "source_location": "L2"}, {"id": "home_lucas_documents_pessoal_espdocs_jsconfig_compileroptions_paths", "label": "paths", "file_type": "code", "source_file": "jsconfig.json", "source_location": "L3"}, {"id": "home_lucas_documents_pessoal_espdocs_jsconfig_paths", "label": "@/*", "file_type": "code", "source_file": "jsconfig.json", "source_location": "L4"}, {"id": "ref", "label": "./*", "file_type": "concept", "source_file": "jsconfig.json", "source_location": "L4"}], "edges": [{"source": "home_lucas_documents_pessoal_espdocs_jsconfig_json", "target": "home_lucas_documents_pessoal_espdocs_jsconfig_compileroptions", "relation": "contains", "confidence": "EXTRACTED", "source_file": "jsconfig.json", "source_location": "L2", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_jsconfig_compileroptions", "target": "home_lucas_documents_pessoal_espdocs_jsconfig_compileroptions_paths", "relation": "contains", "confidence": "EXTRACTED", "source_file": "jsconfig.json", "source_location": "L3", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_jsconfig_compileroptions_paths", "target": "home_lucas_documents_pessoal_espdocs_jsconfig_paths", "relation": "contains", "confidence": "EXTRACTED", "source_file": "jsconfig.json", "source_location": "L4", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_jsconfig_paths", "target": "ref", "relation": "extends", "confidence": "EXTRACTED", "source_file": "jsconfig.json", "source_location": "L4", "weight": 1.0, "context": "import"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_idf_c", "label": "esp-idf.c", "file_type": "code", "source_file": "public/exemplos/esp-idf.c", "source_location": "L1"}, {"id": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_idf_app_main", "label": "app_main()", "file_type": "code", "source_file": "public/exemplos/esp-idf.c", "source_location": "L8", "_callable": true}], "edges": [{"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_idf_c", "target": "stdio", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-idf.c", "source_location": "L1", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_idf_c", "target": "freertos", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-idf.c", "source_location": "L2", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_idf_c", "target": "task", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-idf.c", "source_location": "L3", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_idf_c", "target": "gpio", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-idf.c", "source_location": "L4", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_idf_c", "target": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_idf_app_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-idf.c", "source_location": "L8", "weight": 1.0}], "raw_calls": [{"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_idf_app_main", "callee": "gpio_reset_pin", "is_member_call": false, "source_file": "public/exemplos/esp-idf.c", "source_location": "L11", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_idf_app_main", "callee": "gpio_set_direction", "is_member_call": false, "source_file": "public/exemplos/esp-idf.c", "source_location": "L12", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_idf_app_main", "callee": "gpio_set_level", "is_member_call": false, "source_file": "public/exemplos/esp-idf.c", "source_location": "L16", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_idf_app_main", "callee": "printf", "is_member_call": false, "source_file": "public/exemplos/esp-idf.c", "source_location": "L17", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_idf_app_main", "callee": "vTaskDelay", "is_member_call": false, "source_file": "public/exemplos/esp-idf.c", "source_location": "L18", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_idf_app_main", "callee": "pdMS_TO_TICKS", "is_member_call": false, "source_file": "public/exemplos/esp-idf.c", "source_location": "L18", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_idf_app_main", "callee": "gpio_set_level", "is_member_call": false, "source_file": "public/exemplos/esp-idf.c", "source_location": "L21", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_idf_app_main", "callee": "printf", "is_member_call": false, "source_file": "public/exemplos/esp-idf.c", "source_location": "L22", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_idf_app_main", "callee": "vTaskDelay", "is_member_call": false, "source_file": "public/exemplos/esp-idf.c", "source_location": "L23", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_idf_app_main", "callee": "pdMS_TO_TICKS", "is_member_call": false, "source_file": "public/exemplos/esp-idf.c", "source_location": "L23", "receiver": null}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "home_lucas_documents_pessoal_espdocs_public_exemplos_micropython_py", "label": "micropython.py", "file_type": "code", "source_file": "public/exemplos/micropython.py", "source_location": "L1"}], "edges": [{"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_micropython_py", "target": "machine", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/micropython.py", "source_location": "L1", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_micropython_py", "target": "time", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/micropython.py", "source_location": "L2", "weight": 1.0}], "raw_calls": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_who_c", "label": "esp-who.c", "file_type": "code", "source_file": "public/exemplos/esp-who.c", "source_location": "L1"}, {"id": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_who_setup", "label": "setup()", "file_type": "code", "source_file": "public/exemplos/esp-who.c", "source_location": "L11", "_callable": true}, {"id": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_who_loop", "label": "loop()", "file_type": "code", "source_file": "public/exemplos/esp-who.c", "source_location": "L48", "_callable": true}], "edges": [{"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_who_c", "target": "esp_camera", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-who.c", "source_location": "L1", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_who_c", "target": "fd_forward", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-who.c", "source_location": "L2", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_who_c", "target": "fr_forward", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-who.c", "source_location": "L3", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_who_c", "target": "human_face_detect_msr01", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-who.c", "source_location": "L4", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_who_c", "target": "human_face_detect_mnp01", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-who.c", "source_location": "L5", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_who_c", "target": "camera_pins", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-who.c", "source_location": "L9", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_who_c", "target": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_who_setup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-who.c", "source_location": "L11", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_who_c", "target": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_who_loop", "relation": "contains", "confidence": "EXTRACTED", "source_file": "public/exemplos/esp-who.c", "source_location": "L48", "weight": 1.0}], "raw_calls": [{"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_who_setup", "callee": "begin", "is_member_call": true, "source_file": "public/exemplos/esp-who.c", "source_location": "L12", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_who_setup", "callee": "setDebugOutput", "is_member_call": true, "source_file": "public/exemplos/esp-who.c", "source_location": "L13", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_who_setup", "callee": "println", "is_member_call": true, "source_file": "public/exemplos/esp-who.c", "source_location": "L14", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_who_setup", "callee": "esp_camera_init", "is_member_call": false, "source_file": "public/exemplos/esp-who.c", "source_location": "L40", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_who_setup", "callee": "println", "is_member_call": true, "source_file": "public/exemplos/esp-who.c", "source_location": "L41", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_who_setup", "callee": "println", "is_member_call": true, "source_file": "public/exemplos/esp-who.c", "source_location": "L45", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_who_loop", "callee": "esp_camera_fb_get", "is_member_call": false, "source_file": "public/exemplos/esp-who.c", "source_location": "L49", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_who_loop", "callee": "println", "is_member_call": true, "source_file": "public/exemplos/esp-who.c", "source_location": "L51", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_who_loop", "callee": "face_detect_msr01", "is_member_call": false, "source_file": "public/exemplos/esp-who.c", "source_location": "L56", "receiver": null}, {"caller_nid": "home_lucas_documents_pessoal_espdocs_public_exemplos_esp_who_loop", "callee": "printf", "is_member_call": true, "source_file": "public/exemplos/esp-who.c", "source_location": "L58", "recLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "home_lucas_documents_pessoal_espdocs_readme_md", "label": "README.md", "file_type": "document", "source_file": "README.md", "source_location": "L1"}, {"id": "home_lucas_documents_pessoal_espdocs_readme_espdocs_documenta\u00e7\u00e3o_esp32_em_portugu\u00eas", "label": "ESPDocs - Documenta\u00e7\u00e3o ESP32 em Portugu\u00eas", "file_type": "document", "source_file": "README.md", "source_location": "L1"}, {"id": "home_lucas_documents_pessoal_espdocs_readme_funcionalidades", "label": "\ud83d\ude80 Funcionalidades", "file_type": "document", "source_file": "README.md", "source_location": "L9"}, {"id": "home_lucas_documents_pessoal_espdocs_readme_in\u00edcio_r\u00e1pido", "label": "\ud83c\udfc1 In\u00edcio R\u00e1pido", "file_type": "document", "source_file": "README.md", "source_location": "L18"}, {"id": "home_lucas_documents_pessoal_espdocs_readme_instala\u00e7\u00e3o", "label": "Instala\u00e7\u00e3o", "file_type": "document", "source_file": "README.md", "source_location": "L20"}, {"id": "home_lucas_documents_pessoal_espdocs_readme_configura\u00e7\u00e3o_do_marketplace_opcional", "label": "Configura\u00e7\u00e3o do Marketplace (Opcional)", "file_type": "document", "source_file": "README.md", "source_location": "L33"}, {"id": "home_lucas_documents_pessoal_espdocs_readme_executar_em_desenvolvimento", "label": "Executar em Desenvolvimento", "file_type": "document", "source_file": "README.md", "source_location": "L43"}, {"id": "home_lucas_documents_pessoal_espdocs_readme_estrutura_do_projeto", "label": "\ud83d\udcc1 Estrutura do Projeto", "file_type": "document", "source_file": "README.md", "source_location": "L55"}, {"id": "home_lucas_documents_pessoal_espdocs_readme_tecnologias", "label": "\ud83d\udee0\ufe0f Tecnologias", "file_type": "document", "source_file": "README.md", "source_location": "L87"}, {"id": "home_lucas_documents_pessoal_espdocs_readme_learn_more", "label": "\ud83d\udcda Learn More", "file_type": "document", "source_file": "README.md", "source_location": "L95"}, {"id": "home_lucas_documents_pessoal_espdocs_readme_deploy_on_vercel", "label": "\ud83d\ude80 Deploy on Vercel", "file_type": "document", "source_file": "README.md", "source_location": "L104"}, {"id": "home_lucas_documents_pessoal_espdocs_readme_licen\u00e7a", "label": "\ud83d\udcc4 Licen\u00e7a", "file_type": "document", "source_file": "README.md", "source_location": "L112"}, {"id": "home_lucas_documents_pessoal_espdocs_readme_disclaimer", "label": "\u26a0\ufe0f Disclaimer", "file_type": "document", "source_file": "README.md", "source_location": "L116"}, {"id": "home_lucas_documents_pessoal_espdocs_readme_autor", "label": "\ud83d\udc64 Autor", "file_type": "document", "source_file": "README.md", "source_location": "L120"}, {"id": "home_lucas_documents_pessoal_espdocs_readme_contribuindo", "label": "\ud83e\udd1d Contribuindo", "file_type": "document", "source_file": "README.md", "source_location": "L126"}], "edges": [{"source": "home_lucas_documents_pessoal_espdocs_readme_md", "target": "home_lucas_documents_pessoal_espdocs_readme_espdocs_documenta\u00e7\u00e3o_esp32_em_portugu\u00eas", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L1", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_readme_espdocs_documenta\u00e7\u00e3o_esp32_em_portugu\u00eas", "target": "home_lucas_documents_pessoal_espdocs_readme_funcionalidades", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L9", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_readme_espdocs_documenta\u00e7\u00e3o_esp32_em_portugu\u00eas", "target": "home_lucas_documents_pessoal_espdocs_readme_in\u00edcio_r\u00e1pido", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L18", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_readme_in\u00edcio_r\u00e1pido", "target": "home_lucas_documents_pessoal_espdocs_readme_instala\u00e7\u00e3o", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L20", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_readme_in\u00edcio_r\u00e1pido", "target": "home_lucas_documents_pessoal_espdocs_readme_configura\u00e7\u00e3o_do_marketplace_opcional", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L33", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_readme_in\u00edcio_r\u00e1pido", "target": "home_lucas_documents_pessoal_espdocs_readme_executar_em_desenvolvimento", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.md", "source_location": "L43", "weight": 1.0}, {"source": "home_lucas_documents_pessoal_espdocs_readme_espdocs_documenta\u00e7\u00e3o_esp32_em_portugu\u00eas", "target": "home_lucas_documents_pessoal_espdocs_readme_estrutura_do_projeto", "relation": "contains", "confidence": "EXTRACTED", "source_fiLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "public_placas_esp32_c2_devkit_pinout", "label": "ESP8684-DevKitM-1 Pinout Diagram (ESP32-C2)", "file_type": "image", "source_file": "public/placas/esp32-c2.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c2_mini_1_module", "label": "ESP8684-MINI-1 Module with PCB Antenna", "file_type": "concept", "source_file": "public/placas/esp32-c2.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c2_micro_usb_port", "label": "Micro-USB Port (ESP8684-DevKitM-1)", "file_type": "concept", "source_file": "public/placas/esp32-c2.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c2_boot_rst_buttons", "label": "Boot and RST Buttons (ESP8684-DevKitM-1)", "file_type": "concept", "source_file": "public/placas/esp32-c2.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c2_rgb_led", "label": "Addressable RGB LED (ESP8684 GPIO8)", "file_type": "concept", "source_file": "public/placas/esp32-c2.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c2_specs", "label": "ESP8684 Specs: RISC-V 120MHz, Wi-Fi 4 + BLE 5, 272KB SRAM, 14 GPIOs", "file_type": "concept", "source_file": "public/placas/esp32-c2.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c2_dual_header_pinout", "label": "Dual 2x Pin Header Castellated Layout", "file_type": "concept", "source_file": "public/placas/esp32-c2.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "public_placas_esp32_c2_devkit_pinout", "target": "public_placas_esp32_c2_mini_1_module", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c2.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c2_devkit_pinout", "target": "public_placas_esp32_c2_micro_usb_port", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c2.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c2_devkit_pinout", "target": "public_placas_esp32_c2_boot_rst_buttons", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c2.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c2_devkit_pinout", "target": "public_placas_esp32_c2_rgb_led", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c2.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c2_devkit_pinout", "target": "public_placas_esp32_c2_specs", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c2.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c2_devkit_pinout", "target": "public_placas_esp32_c2_dual_header_pinout", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c2.png", "source_location": null, "weight": 1.0}], "hyperedges": [{"id": "devkit_common_hardware_controls", "label": "Common DevKit Hardware Controls (Buttons, USB, LED)", "nodes": ["public_placas_esp32_c2_boot_rst_buttons", "public_placas_esp32_c3_boot_rst_buttons", "public_placas_esp32_c5_reset_boot_buttons", "public_placas_esp32_c2_micro_usb_port", "public_placas_esp32_c3_micro_usb_port", "public_placas_esp32_c5_dual_usb_c_ports"], "relation": "participate_in", "confidence": "INFERRED", "confidence_score": 0.75, "source_file": "public/placas/esp32-c2.png"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "public_placas_esp32_c3_devkit_pinout", "label": "ESP32-C3-DevKitM-1 Pinout Diagram", "file_type": "image", "source_file": "public/placas/esp32-c3.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c3_mini_1_module", "label": "ESP32-C3-MINI-1 Module with PCB Antenna", "file_type": "concept", "source_file": "public/placas/esp32-c3.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c3_cp2102_usb_bridge", "label": "CP2102 USB-to-UART Bridge Chip", "file_type": "concept", "source_file": "public/placas/esp32-c3.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c3_micro_usb_port", "label": "Micro-USB Port (ESP32-C3-DevKitM-1)", "file_type": "concept", "source_file": "public/placas/esp32-c3.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c3_boot_rst_buttons", "label": "BOOT and RST Buttons (ESP32-C3-DevKitM-1)", "file_type": "concept", "source_file": "public/placas/esp32-c3.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c3_rgb_led_gpio8", "label": "RGB LED on GPIO8 (ESP32-C3)", "file_type": "concept", "source_file": "public/placas/esp32-c3.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c3_usb_serial_jtag", "label": "USB Serial/JTAG on GPIO18/GPIO19 (USB_D-/USB_D+)", "file_type": "concept", "source_file": "public/placas/esp32-c3.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c3_specs", "label": "ESP32-C3 Specs: RISC-V 160MHz, Wi-Fi 4 + BLE 5, 400KB SRAM, 22 GPIOs", "file_type": "concept", "source_file": "public/placas/esp32-c3.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c3_gpio_state_legend", "label": "GPIO State Legend (IE/PU/WPU/ID/OE/OD After Reset)", "file_type": "concept", "source_file": "public/placas/esp32-c3.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "public_placas_esp32_c3_devkit_pinout", "target": "public_placas_esp32_c3_mini_1_module", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c3.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c3_devkit_pinout", "target": "public_placas_esp32_c3_cp2102_usb_bridge", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c3.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c3_devkit_pinout", "target": "public_placas_esp32_c3_micro_usb_port", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c3.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c3_devkit_pinout", "target": "public_placas_esp32_c3_boot_rst_buttons", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c3.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c3_devkit_pinout", "target": "public_placas_esp32_c3_rgb_led_gpio8", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c3.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c3_devkit_pinout", "target": "public_placas_esp32_c3_usb_serial_jtag", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c3.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c3_devkit_pinout", "target": "public_placas_esp32_c3_specs", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c3.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c3_devkit_pinout", "target": "public_placas_esp32_c3_gpio_state_legend", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c3.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c3_cp2102_usb_bridge", "target": "public_placas_esp32_c3_micro_usb_port", "relation": "shares_data_with", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "public/placas/esp32-c3.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c2_devkit_pinout", "target": "public_placas_esp32_c3_devkit_pinout", "rLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "public_datasheets_esp32_chip", "label": "ESP32 SoC", "file_type": "paper", "source_file": "public/datasheets/ESP32.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_xtensa_lx6", "label": "Xtensa 32-bit LX6 Microprocessor", "file_type": "concept", "source_file": "public/datasheets/ESP32.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_ulp_coprocessor", "label": "ULP Coprocessor", "file_type": "concept", "source_file": "public/datasheets/ESP32.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_wifi", "label": "2.4 GHz Wi-Fi 802.11b/g/n", "file_type": "concept", "source_file": "public/datasheets/ESP32.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_bluetooth_42", "label": "Bluetooth v4.2 BR/EDR and LE Dual Mode", "file_type": "concept", "source_file": "public/datasheets/ESP32.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_sram", "label": "520 KB SRAM", "file_type": "concept", "source_file": "public/datasheets/ESP32.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_rom", "label": "448 KB ROM", "file_type": "concept", "source_file": "public/datasheets/ESP32.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_rtc_memory", "label": "16 KB RTC SRAM / Recovery Memory", "file_type": "concept", "source_file": "public/datasheets/ESP32.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_secure_boot", "label": "Secure Boot", "file_type": "concept", "source_file": "public/datasheets/ESP32.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_flash_encryption", "label": "Flash Encryption", "file_type": "concept", "source_file": "public/datasheets/ESP32.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_crypto_accelerators", "label": "Cryptographic Hardware Acceleration (AES, SHA-2, RSA, RNG)", "file_type": "concept", "source_file": "public/datasheets/ESP32.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_twai", "label": "TWAI (CAN 2.0) Controller", "file_type": "concept", "source_file": "public/datasheets/ESP32.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_ethernet_mac", "label": "Ethernet MAC with IEEE 1588", "file_type": "concept", "source_file": "public/datasheets/ESP32.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_touch_sensors", "label": "10 Touch Sensors", "file_type": "concept", "source_file": "public/datasheets/ESP32.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_sar_adc", "label": "12-bit SAR ADC", "file_type": "concept", "source_file": "public/datasheets/ESP32.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_dac", "label": "8-bit DAC", "file_type": "concept", "source_file": "public/datasheets/ESP32.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_pmu", "label": "Power Management Unit / Power Modes", "file_type": "concept", "source_file": "public/datasheets/ESP32.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_rtc", "label": "RTC Module", "file_type": "concept", "source_file": "public/datasheets/ESP32.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "public_datasheets_esp32_chip", "target": "public_datasheets_esp32_xtensa_lx6", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/datasheets/ESP32.pdf", "source_location": null, "weight": 1.0}, {"source": "public_datasheets_esp32_chip", "target": "public_datasheets_esp32_ulp_coprocessor", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "sourceLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "public_datasheets_esp32_s31_chip", "label": "ESP32-S31 SoC", "file_type": "paper", "source_file": "public/datasheets/ESP32-S31.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s31_hp_riscv_core", "label": "HP 32-bit RISC-V Dual-Core Processor", "file_type": "concept", "source_file": "public/datasheets/ESP32-S31.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s31_lp_riscv_core", "label": "LP 32-bit RISC-V Processor", "file_type": "concept", "source_file": "public/datasheets/ESP32-S31.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s31_ulp_riscv", "label": "ULP-RISC-V Coprocessor", "file_type": "concept", "source_file": "public/datasheets/ESP32-S31.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s31_wifi6", "label": "2.4 GHz Wi-Fi 6 (IEEE 802.11ax)", "file_type": "concept", "source_file": "public/datasheets/ESP32-S31.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s31_bluetooth_54_le", "label": "Bluetooth 5.4 LE", "file_type": "concept", "source_file": "public/datasheets/ESP32-S31.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s31_bluetooth_classic", "label": "Bluetooth Classic", "file_type": "concept", "source_file": "public/datasheets/ESP32-S31.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s31_ieee_802154", "label": "IEEE 802.15.4 Radio", "file_type": "concept", "source_file": "public/datasheets/ESP32-S31.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s31_zigbee", "label": "Zigbee 3.0", "file_type": "concept", "source_file": "public/datasheets/ESP32-S31.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s31_thread", "label": "Thread 1.4", "file_type": "concept", "source_file": "public/datasheets/ESP32-S31.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s31_matter", "label": "Matter", "file_type": "concept", "source_file": "public/datasheets/ESP32-S31.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s31_hp_sram", "label": "512 KB Shared HP SRAM", "file_type": "concept", "source_file": "public/datasheets/ESP32-S31.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s31_rom", "label": "320 KB ROM", "file_type": "concept", "source_file": "public/datasheets/ESP32-S31.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s31_psram", "label": "In-Package DDR PSRAM Interface", "file_type": "concept", "source_file": "public/datasheets/ESP32-S31.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s31_gdma", "label": "GDMA (General DMA Controller)", "file_type": "concept", "source_file": "public/datasheets/ESP32-S31.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s31_secure_boot", "label": "Secure Boot", "file_type": "concept", "source_file": "public/datasheets/ESP32-S31.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s31_flash_psram_encryption", "label": "Flash/PSRAM Encryption", "file_type": "concept", "source_file": "public/datasheets/ESP32-S31.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s31_crypto_accelerators", "label": "Cryptographic Accelerators (AES, SHA, RSA, ECC, ECDSA, HMAC, TRNG)", "file_type": "concept", "source_file": "public/datasheets/ESP32-S31.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s31_huk_key_manager", "label": "HUK & Key Manager", "file_type": "concept", "source_file": "public/datasheets/ESP32-S31.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_daLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "public_google21a790a2c23c0ec5_verification", "label": "Google Site Verification Token", "file_type": "document", "source_file": "public/google21a790a2c23c0ec5.html", "source_location": "L1", "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "public_google21a790a2c23c0ec5_verification", "target": "readme_espdocs", "relation": "conceptually_related_to", "confidence": "AMBIGUOUS", "confidence_score": 0.3, "source_file": "public/google21a790a2c23c0ec5.html", "source_location": "L1", "weight": 1.0}], "hyperedges": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "public_placas_esp32_s31_board_photo", "label": "ESP32-S31 Function-Core Board V1.0 Annotated Photo", "file_type": "image", "source_file": "public/placas/esp32-s31.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_s31_wroom_3_module", "label": "ESP32-S31-WROOM-3 Module", "file_type": "concept", "source_file": "public/placas/esp32-s31.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_s31_rj45_ethernet_port", "label": "RJ45 Ethernet Port", "file_type": "concept", "source_file": "public/placas/esp32-s31.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_s31_ethernet_transformer", "label": "Ethernet Transformer", "file_type": "concept", "source_file": "public/placas/esp32-s31.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_s31_usb_type_a_port", "label": "USB 2.0 Type-A Port", "file_type": "concept", "source_file": "public/placas/esp32-s31.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_s31_usb_serial_jtag_port", "label": "USB Serial/JTAG Port (USB-DBG)", "file_type": "concept", "source_file": "public/placas/esp32-s31.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_s31_usb_type_c_uart_port", "label": "USB Type-C to UART Port", "file_type": "concept", "source_file": "public/placas/esp32-s31.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_s31_audio_codec_chip", "label": "Audio Codec Chip", "file_type": "concept", "source_file": "public/placas/esp32-s31.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_s31_microphone", "label": "Onboard Microphone", "file_type": "concept", "source_file": "public/placas/esp32-s31.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_s31_speaker_output_port", "label": "Speaker Output Port", "file_type": "concept", "source_file": "public/placas/esp32-s31.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_s31_rgb_led", "label": "ESP32-S31 RGB LED", "file_type": "concept", "source_file": "public/placas/esp32-s31.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_s31_dcdc_converter", "label": "5V to 3.3V DC/DC Converter", "file_type": "concept", "source_file": "public/placas/esp32-s31.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_s31_j2_header", "label": "J2 Pin Header", "file_type": "concept", "source_file": "public/placas/esp32-s31.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_s31_boot_reset_buttons", "label": "ESP32-S31 BOOT and RST Buttons", "file_type": "concept", "source_file": "public/placas/esp32-s31.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "public_placas_esp32_s31_board_photo", "target": "public_placas_esp32_s31_wroom_3_module", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-s31.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_s31_board_photo", "target": "public_placas_esp32_s31_rj45_ethernet_port", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-s31.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_s31_board_photo", "target": "public_placas_esp32_s31_ethernet_transformer", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-s31.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_s31_rj45_ethernet_port", "target": "public_placas_esp32_s31_ethernet_transformer", "relation": "shares_data_with", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "public/placas/esp32-s31.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_s31_board_photo", "target": "public_placas_esp32_s31_usb_type_a_port", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-s31.png", "source_locatLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "public_datasheets_esp32_c61_esp32_c61", "label": "ESP32-C61 SoC", "file_type": "paper", "source_file": "public/datasheets/ESP32-C61.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c61_risc_v_processor", "label": "RISC-V 32-bit Single-Core Processor (160 MHz)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C61.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c61_wi_fi_6", "label": "Wi-Fi 6 (IEEE 802.11ax, 2.4 GHz)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C61.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c61_bluetooth_le_6_0", "label": "Bluetooth LE (Core 6.0 certified)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C61.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c61_sram_320_kb", "label": "SRAM 320 KB", "file_type": "concept", "source_file": "public/datasheets/ESP32-C61.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c61_rom_256_kb", "label": "ROM 256 KB", "file_type": "concept", "source_file": "public/datasheets/ESP32-C61.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c61_psram", "label": "In-package PSRAM / External RAM", "file_type": "concept", "source_file": "public/datasheets/ESP32-C61.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c61_l1_cache", "label": "L1 Cache 32 KB", "file_type": "concept", "source_file": "public/datasheets/ESP32-C61.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c61_secure_boot", "label": "Secure Boot", "file_type": "concept", "source_file": "public/datasheets/ESP32-C61.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c61_flash_psram_encryption", "label": "Flash/PSRAM Encryption (XTS-AES)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C61.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c61_ecdsa", "label": "Digital Signature - ECDSA", "file_type": "concept", "source_file": "public/datasheets/ESP32-C61.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c61_trng", "label": "True Random Number Generator (TRNG)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C61.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c61_power_glitch_detector", "label": "Power Glitch Detector", "file_type": "concept", "source_file": "public/datasheets/ESP32-C61.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c61_apm", "label": "Access Permission Management (APM)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C61.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c61_usb_serial_jtag", "label": "USB Serial/JTAG Controller", "file_type": "concept", "source_file": "public/datasheets/ESP32-C61.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c61_sdio_2_0_slave", "label": "SDIO 2.0 Slave Controller", "file_type": "concept", "source_file": "public/datasheets/ESP32-C61.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c61_sar_adc", "label": "12-bit SAR ADC (4 channels)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C61.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c61_gdma", "label": "General DMA Controller (GDMA)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C61.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c61_etm", "label": "Event Task Matrix (ETM)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C61.pdf", "source_location": null, "source_url": null, "captured_aLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "public_placas_esp32_c61_board", "label": "ESP32-C61-DevKitC-1 Pinout Diagram", "file_type": "image", "source_file": "public/placas/esp32-c61.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c61_wroom_1_module", "label": "ESP32-C61-WROOM-1 Module", "file_type": "concept", "source_file": "public/placas/esp32-c61.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c61_usb_uart_ports", "label": "ESP32-C61 UART and USB Type-C Ports", "file_type": "concept", "source_file": "public/placas/esp32-c61.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c61_reset_boot_buttons", "label": "ESP32-C61 RESET and BOOT Buttons", "file_type": "concept", "source_file": "public/placas/esp32-c61.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c61_specs", "label": "ESP32-C61 Specs: RISC-V 160MHz, Wi-Fi 6, BLE 5", "file_type": "concept", "source_file": "public/placas/esp32-c61.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "public_placas_esp32_c61_board", "target": "public_placas_esp32_c61_wroom_1_module", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c61.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c61_board", "target": "public_placas_esp32_c61_usb_uart_ports", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c61.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c61_board", "target": "public_placas_esp32_c61_reset_boot_buttons", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c61.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c61_board", "target": "public_placas_esp32_c61_specs", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c61.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c6_board", "target": "public_placas_esp32_c61_board", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "public/placas/esp32-c61.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c6_usb_uart_ports", "target": "public_placas_esp32_c61_usb_uart_ports", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "public/placas/esp32-c61.png", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "public_datasheets_esp32_p4_chip", "label": "ESP32-P4 Series SoC", "file_type": "paper", "source_file": "public/datasheets/ESP32-P4.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_p4_hp_riscv_dual_core", "label": "RISC-V 32-bit Dual-Core HP CPU (400 MHz)", "file_type": "concept", "source_file": "public/datasheets/ESP32-P4.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_p4_lp_riscv_core", "label": "RISC-V 32-bit Single-Core LP CPU (40 MHz)", "file_type": "concept", "source_file": "public/datasheets/ESP32-P4.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_p4_l2mem", "label": "768 KB HP L2MEM", "file_type": "concept", "source_file": "public/datasheets/ESP32-P4.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_p4_psram", "label": "16 MB / 32 MB In-Package PSRAM", "file_type": "concept", "source_file": "public/datasheets/ESP32-P4.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_p4_two_level_cache", "label": "Two-Level High-Speed Cache", "file_type": "concept", "source_file": "public/datasheets/ESP32-P4.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_p4_processor_instruction_extensions", "label": "Processor Instruction Extensions (SIMD/AI)", "file_type": "concept", "source_file": "public/datasheets/ESP32-P4.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_p4_image_processing_subsystem", "label": "Image Processing Subsystem", "file_type": "concept", "source_file": "public/datasheets/ESP32-P4.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_p4_jpeg_codec", "label": "JPEG Codec", "file_type": "concept", "source_file": "public/datasheets/ESP32-P4.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_p4_isp", "label": "Image Signal Processor (ISP)", "file_type": "concept", "source_file": "public/datasheets/ESP32-P4.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_p4_ppa", "label": "Pixel-Processing Accelerator (PPA)", "file_type": "concept", "source_file": "public/datasheets/ESP32-P4.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_p4_h264_encoder", "label": "H264 Encoder", "file_type": "concept", "source_file": "public/datasheets/ESP32-P4.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_p4_mipi_csi", "label": "MIPI CSI", "file_type": "concept", "source_file": "public/datasheets/ESP32-P4.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_p4_mipi_dsi", "label": "MIPI DSI", "file_type": "concept", "source_file": "public/datasheets/ESP32-P4.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_p4_vad", "label": "Voice Activity Detection (VAD)", "file_type": "concept", "source_file": "public/datasheets/ESP32-P4.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_p4_usb_hs_otg", "label": "USB 2.0 High-Speed OTG", "file_type": "concept", "source_file": "public/datasheets/ESP32-P4.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_p4_emac", "label": "Ethernet MAC (EMAC)", "file_type": "concept", "source_file": "public/datasheets/ESP32-P4.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_p4_gdma", "label": "GDMA / VDMA / 2D-DMA Controllers", "file_type": "concept", "source_file": "public/datasheets/ESP32-P4.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_p4_sdmmc_host", "label": "SD/MMC Host Controller (SDHOST)", "file_type": "concept", "source_file": "public/datasheets/ESP32-P4.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor":Line truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "public_datasheets_esp32_c6_esp32_c6", "label": "ESP32-C6 SoC", "file_type": "paper", "source_file": "public/datasheets/ESP32-C6.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c6_hp_risc_v_processor", "label": "HP RISC-V 32-bit Processor (160 MHz)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C6.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c6_lp_risc_v_processor", "label": "LP RISC-V 32-bit Processor (20 MHz)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C6.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c6_wi_fi_6", "label": "Wi-Fi 6 (IEEE 802.11ax, 2.4 GHz)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C6.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c6_bluetooth_le_5_3", "label": "Bluetooth LE 5.3", "file_type": "concept", "source_file": "public/datasheets/ESP32-C6.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c6_ieee_802_15_4", "label": "IEEE 802.15.4", "file_type": "concept", "source_file": "public/datasheets/ESP32-C6.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c6_zigbee_3_0", "label": "Zigbee 3.0", "file_type": "concept", "source_file": "public/datasheets/ESP32-C6.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c6_thread_1_3", "label": "Thread 1.3", "file_type": "concept", "source_file": "public/datasheets/ESP32-C6.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c6_hp_sram_512_kb", "label": "HP SRAM 512 KB", "file_type": "concept", "source_file": "public/datasheets/ESP32-C6.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c6_lp_sram_16_kb", "label": "LP SRAM 16 KB", "file_type": "concept", "source_file": "public/datasheets/ESP32-C6.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c6_rom_320_kb", "label": "ROM 320 KB", "file_type": "concept", "source_file": "public/datasheets/ESP32-C6.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c6_efuse", "label": "4096-bit eFuse Memory", "file_type": "concept", "source_file": "public/datasheets/ESP32-C6.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c6_secure_boot", "label": "Secure Boot", "file_type": "concept", "source_file": "public/datasheets/ESP32-C6.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c6_flash_encryption", "label": "Flash Encryption (XTS_AES)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C6.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c6_tee_apm", "label": "TEE Controller and Access Permission Management (APM)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C6.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c6_crypto_accelerators", "label": "Crypto Accelerators (AES, SHA, RSA, ECC, HMAC, RNG)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C6.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c6_rf_module", "label": "RF Module (Balun, PA, LNA, Antenna Switch)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C6.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c6_usb_serial_jtag", "label": "USB Serial/JTAG Controller", "file_type": "concept", "source_file": "public/datasheets/ESP32-C6.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c6_twai", "label": "TWAI Controller (CAN 2.0)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C6.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null,Line truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "public_placas_esp32_p4_board", "label": "ESP32-P4 Function EV Board V1.5.2 Annotated Photo", "file_type": "image", "source_file": "public/placas/esp32-p4.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_p4_soc", "label": "ESP32-P4 SoC", "file_type": "concept", "source_file": "public/placas/esp32-p4.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_p4_c6_mini_1_module", "label": "ESP32-C6-MINI-1 Wireless Co-processor Module", "file_type": "concept", "source_file": "public/placas/esp32-p4.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_p4_mipi_dsi_csi", "label": "MIPI DSI Display and CSI Camera Connectors", "file_type": "concept", "source_file": "public/placas/esp32-p4.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_p4_audio_subsystem", "label": "Audio Subsystem: Microphone, Codec Chip, PA Chip, Speaker Port", "file_type": "concept", "source_file": "public/placas/esp32-p4.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_p4_ethernet", "label": "Ethernet PHY IC and RJ45 Port", "file_type": "concept", "source_file": "public/placas/esp32-p4.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_p4_usb_ports", "label": "USB Ports: Type-A Host, Type-C, Serial/JTAG, Full-speed", "file_type": "concept", "source_file": "public/placas/esp32-p4.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_p4_power", "label": "Power: Buck Converters, 5V-to-3.3V LDO, Power Switch, 5V LED", "file_type": "concept", "source_file": "public/placas/esp32-p4.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_p4_clocks_flash", "label": "40 MHz XTAL, 32.768 kHz XTAL and SPI Flash", "file_type": "concept", "source_file": "public/placas/esp32-p4.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_p4_j1_header", "label": "J1 GPIO Expansion Header", "file_type": "concept", "source_file": "public/placas/esp32-p4.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_p4_reset_boot_buttons", "label": "ESP32-P4 RST and BOOT Buttons", "file_type": "concept", "source_file": "public/placas/esp32-p4.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "public_placas_esp32_p4_board", "target": "public_placas_esp32_p4_soc", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-p4.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_p4_board", "target": "public_placas_esp32_p4_c6_mini_1_module", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-p4.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_p4_board", "target": "public_placas_esp32_p4_mipi_dsi_csi", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-p4.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_p4_board", "target": "public_placas_esp32_p4_audio_subsystem", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-p4.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_p4_board", "target": "public_placas_esp32_p4_ethernet", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-p4.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_p4_board", "target": "public_placas_esp32_p4_usb_ports", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-p4.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_p4_board", "target": "public_placas_esp32_p4_power", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-p4.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_p4_board", "target": "public_placas_esp32_p4_clocks_flash", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-p4.png", "source_Line truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "public_datasheets_esp32_s2_chip", "label": "ESP32-S2 Series SoC", "file_type": "paper", "source_file": "public/datasheets/ESP32-S2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s2_xtensa_lx7", "label": "Xtensa Single-Core 32-bit LX7 Microprocessor (240 MHz)", "file_type": "concept", "source_file": "public/datasheets/ESP32-S2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s2_wifi", "label": "2.4 GHz Wi-Fi (802.11 b/g/n)", "file_type": "concept", "source_file": "public/datasheets/ESP32-S2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s2_wifi_mac_baseband", "label": "Wi-Fi MAC and Baseband", "file_type": "concept", "source_file": "public/datasheets/ESP32-S2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s2_rf_module", "label": "RF Module (Balun, PA, LNA, RF Synthesizer)", "file_type": "concept", "source_file": "public/datasheets/ESP32-S2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s2_sram", "label": "320 KB SRAM", "file_type": "concept", "source_file": "public/datasheets/ESP32-S2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s2_rom", "label": "128 KB ROM", "file_type": "concept", "source_file": "public/datasheets/ESP32-S2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s2_rtc_memory", "label": "RTC Memory (16 KB RTC SRAM)", "file_type": "concept", "source_file": "public/datasheets/ESP32-S2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s2_ulp_coprocessor", "label": "ULP Coprocessor (ULP-RISC-V, ULP-FSM)", "file_type": "concept", "source_file": "public/datasheets/ESP32-S2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s2_usb_otg", "label": "Full-Speed USB OTG", "file_type": "concept", "source_file": "public/datasheets/ESP32-S2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s2_touch_sensor", "label": "14 Touch Sensing GPIOs", "file_type": "concept", "source_file": "public/datasheets/ESP32-S2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s2_dac", "label": "Two 8-bit DACs", "file_type": "concept", "source_file": "public/datasheets/ESP32-S2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s2_sar_adc", "label": "Two 12-bit SAR ADCs", "file_type": "concept", "source_file": "public/datasheets/ESP32-S2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s2_twai", "label": "TWAI Controller (CAN 2.0)", "file_type": "concept", "source_file": "public/datasheets/ESP32-S2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s2_secure_boot", "label": "Secure Boot", "file_type": "concept", "source_file": "public/datasheets/ESP32-S2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s2_flash_encryption", "label": "Flash Encryption", "file_type": "concept", "source_file": "public/datasheets/ESP32-S2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s2_crypto_accelerators", "label": "Crypto Accelerators (AES, SHA, RSA, HMAC, RNG, Digital Signature)", "file_type": "concept", "source_file": "public/datasheets/ESP32-S2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s2_efuse_otp", "label": "4096-bit eFuse OTP", "file_type": "concept", "source_file": "public/datasheets/ESP32-S2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s2_power_management", "label": "Power Management Unit and Five Power Modes", "file_type": "concept", "source_file": "public/datasheets/ESP32-S2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, Line truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "public_placas_esp32_c5_devkit_pinout", "label": "ESP32-C5-DevKitC-1 Pinout Diagram", "file_type": "image", "source_file": "public/placas/esp32-c5.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c5_wroom_1_module", "label": "ESP32-C5-WROOM-1 Module with PCB Antenna", "file_type": "concept", "source_file": "public/placas/esp32-c5.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c5_dual_usb_c_ports", "label": "Dual USB-C Ports (UART and native USB)", "file_type": "concept", "source_file": "public/placas/esp32-c5.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c5_reset_boot_buttons", "label": "RESET and BOOT Buttons (ESP32-C5-DevKitC-1)", "file_type": "concept", "source_file": "public/placas/esp32-c5.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c5_specs", "label": "ESP32-C5 Specs: RISC-V 240MHz, Dual-Band Wi-Fi 6, BLE + 802.15.4", "file_type": "concept", "source_file": "public/placas/esp32-c5.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c5_low_power_peripherals", "label": "Low-Power Peripherals (LP_GPIO, LP_UART, LP_I2C)", "file_type": "concept", "source_file": "public/placas/esp32-c5.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c5_sdio_functions", "label": "SDIO Functions (SDIO_CLK/CMD/DATA0-3)", "file_type": "concept", "source_file": "public/placas/esp32-c5.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c5_zigbee_thread", "label": "Zigbee and Thread (IEEE 802.15.4) Support", "file_type": "concept", "source_file": "public/placas/esp32-c5.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c5_espressif_branding", "label": "Espressif Official Pinout Diagram Style", "file_type": "concept", "source_file": "public/placas/esp32-c5.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "public_placas_esp32_c5_devkit_pinout", "target": "public_placas_esp32_c5_wroom_1_module", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c5.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c5_devkit_pinout", "target": "public_placas_esp32_c5_dual_usb_c_ports", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c5.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c5_devkit_pinout", "target": "public_placas_esp32_c5_reset_boot_buttons", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c5.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c5_devkit_pinout", "target": "public_placas_esp32_c5_specs", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c5.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c5_devkit_pinout", "target": "public_placas_esp32_c5_low_power_peripherals", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c5.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c5_devkit_pinout", "target": "public_placas_esp32_c5_sdio_functions", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c5.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c5_specs", "target": "public_placas_esp32_c5_zigbee_thread", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c5.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c5_devkit_pinout", "target": "public_placas_esp32_c5_espressif_branding", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c5.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c3_devkit_pinout", "target": "public_placas_esp32_c5_devkit_pinout", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "public/placas/esp32-c5.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c3_specs", "target": "public_placas_esp32_c5_spLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "public_datasheets_esp32_c2__esp8684__esp8684_series", "label": "ESP8684 Series (ESP32-C2)", "file_type": "paper", "source_file": "public/datasheets/ESP32-C2 (ESP8684).pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c2__esp8684__risc_v_single_core_cpu", "label": "RISC-V 32-bit Single-Core CPU (120 MHz)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C2 (ESP8684).pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c2__esp8684__wi_fi_802_11bgn", "label": "2.4 GHz Wi-Fi (IEEE 802.11b/g/n)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C2 (ESP8684).pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c2__esp8684__bluetooth_le_5_3", "label": "Bluetooth LE 5.3", "file_type": "concept", "source_file": "public/datasheets/ESP32-C2 (ESP8684).pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c2__esp8684__sram_272kb", "label": "272 KB SRAM", "file_type": "concept", "source_file": "public/datasheets/ESP32-C2 (ESP8684).pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c2__esp8684__rom_576kb", "label": "576 KB ROM", "file_type": "concept", "source_file": "public/datasheets/ESP32-C2 (ESP8684).pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c2__esp8684__in_package_flash", "label": "In-package Flash (2 MB / 4 MB)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C2 (ESP8684).pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c2__esp8684__gpio_14", "label": "14 Programmable GPIOs", "file_type": "concept", "source_file": "public/datasheets/ESP32-C2 (ESP8684).pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c2__esp8684__gdma", "label": "GDMA Controller", "file_type": "concept", "source_file": "public/datasheets/ESP32-C2 (ESP8684).pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c2__esp8684__sar_adc", "label": "12-bit SAR ADC", "file_type": "concept", "source_file": "public/datasheets/ESP32-C2 (ESP8684).pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c2__esp8684__secure_boot", "label": "Secure Boot", "file_type": "concept", "source_file": "public/datasheets/ESP32-C2 (ESP8684).pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c2__esp8684__flash_encryption", "label": "Flash Encryption", "file_type": "concept", "source_file": "public/datasheets/ESP32-C2 (ESP8684).pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c2__esp8684__ecc_accelerator", "label": "ECC Accelerator", "file_type": "concept", "source_file": "public/datasheets/ESP32-C2 (ESP8684).pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c2__esp8684__sha_accelerator", "label": "SHA Accelerator (FIPS PUB 180-4)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C2 (ESP8684).pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c2__esp8684__rng", "label": "Random Number Generator (RNG)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C2 (ESP8684).pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c2__esp8684__pmu", "label": "Power Management Unit / Deep-sleep", "file_type": "concept", "source_file": "public/datasheets/ESP32-C2 (ESP8684).pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c2__esp8684__rf_module", "label": "2.4 GHz RF Module (Balun, PA, LNA)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C2 (ESP8684).pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c2__esp8684__qfn24_package", "label": "QFN24 (4x4 mm) Package", "file_type": "concept", "source_file": "public/datasheets/ESP32-C2 (ESP8684).pdf", "source_location": Line truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "public_placas_esp32_h2_board", "label": "ESP32-H2-DevKitM-1 Pinout Diagram", "file_type": "image", "source_file": "public/placas/esp32-h2.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_h2_module", "label": "ESP32-H2-DevKitM-1 Module", "file_type": "concept", "source_file": "public/placas/esp32-h2.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_h2_usb_uart_ports", "label": "ESP32-H2 UART and USB Ports", "file_type": "concept", "source_file": "public/placas/esp32-h2.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_h2_battery_vbat", "label": "ESP32-H2 Battery VBAT Pin", "file_type": "concept", "source_file": "public/placas/esp32-h2.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_h2_specs", "label": "ESP32-H2 Specs: RISC-V 96MHz, 802.15.4 Thread/Zigbee, BLE 5", "file_type": "concept", "source_file": "public/placas/esp32-h2.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "public_placas_esp32_h2_board", "target": "public_placas_esp32_h2_module", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-h2.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_h2_board", "target": "public_placas_esp32_h2_usb_uart_ports", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-h2.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_h2_board", "target": "public_placas_esp32_h2_battery_vbat", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-h2.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_h2_board", "target": "public_placas_esp32_h2_specs", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-h2.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c61_board", "target": "public_placas_esp32_h2_board", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "public/placas/esp32-h2.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c6_specs", "target": "public_placas_esp32_h2_specs", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "public/placas/esp32-h2.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_h2_usb_uart_ports", "target": "public_placas_esp32_c6_usb_uart_ports", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "public/placas/esp32-h2.png", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "public_datasheets_esp32_c3_esp32_c3_series", "label": "ESP32-C3 Series", "file_type": "paper", "source_file": "public/datasheets/ESP32-C3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c3_risc_v_single_core_cpu", "label": "RISC-V 32-bit Single-Core CPU (160 MHz)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c3_wi_fi_802_11bgn", "label": "2.4 GHz Wi-Fi (IEEE 802.11b/g/n)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c3_bluetooth_le_5", "label": "Bluetooth LE 5 / Bluetooth mesh", "file_type": "concept", "source_file": "public/datasheets/ESP32-C3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c3_sram_400kb", "label": "400 KB SRAM (+8 KB RTC SRAM)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c3_rom_384kb", "label": "384 KB ROM", "file_type": "concept", "source_file": "public/datasheets/ESP32-C3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c3_efuse", "label": "4096-bit eFuse Memory", "file_type": "concept", "source_file": "public/datasheets/ESP32-C3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c3_gdma", "label": "GDMA Controller (3 TX / 3 RX)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c3_usb_serial_jtag", "label": "USB Serial/JTAG Controller", "file_type": "concept", "source_file": "public/datasheets/ESP32-C3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c3_twai", "label": "TWAI Controller (ISO 11898-1 / CAN 2.0)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c3_sar_adc", "label": "Two 12-bit SAR ADCs", "file_type": "concept", "source_file": "public/datasheets/ESP32-C3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c3_gpio_22", "label": "22 Programmable GPIOs", "file_type": "concept", "source_file": "public/datasheets/ESP32-C3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c3_aes_accelerator", "label": "AES-128/256 Accelerator (FIPS PUB 197)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c3_sha_accelerator", "label": "SHA Accelerator (FIPS PUB 180-4)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c3_rsa_accelerator", "label": "RSA Accelerator", "file_type": "concept", "source_file": "public/datasheets/ESP32-C3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c3_hmac_digital_signature", "label": "HMAC and Digital Signature", "file_type": "concept", "source_file": "public/datasheets/ESP32-C3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c3_secure_boot", "label": "Secure Boot", "file_type": "concept", "source_file": "public/datasheets/ESP32-C3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c3_flash_encryption", "label": "Flash Encryption", "file_type": "concept", "source_file": "public/datasheets/ESP32-C3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c3_rng", "label": "Random Number Generator (RNG)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C3.pdf", "source_location": null, "source_url": null, "captured_at": nLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "public_logo_project_logo", "label": "ESPDocs Project Logo", "file_type": "image", "source_file": "public/logo.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_logo_gear_circuit_plant_motif", "label": "Gear + Circuit Traces + Sprouting Plant Motif", "file_type": "concept", "source_file": "public/logo.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_logo_iot_connectivity_icons", "label": "Globe and Shield/Clock IoT Icons", "file_type": "concept", "source_file": "public/logo.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "public_logo_project_logo", "target": "public_logo_gear_circuit_plant_motif", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/logo.png", "source_location": null, "weight": 1.0}, {"source": "public_logo_project_logo", "target": "public_logo_iot_connectivity_icons", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/logo.png", "source_location": null, "weight": 1.0}, {"source": "public_logo_gear_circuit_plant_motif", "target": "public_logo_iot_connectivity_icons", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "public/logo.png", "source_location": null, "weight": 1.0}, {"source": "public_logo_project_logo", "target": "public_placas_esp32_c3_devkit_pinout", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.55, "source_file": "public/logo.png", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "public_placas_esp32_pinout_diagram", "label": "ESP32-DevKitC Pinout Diagram", "file_type": "image", "source_file": "public/placas/esp32.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_wroom_module", "label": "ESP32-WROOM Module", "file_type": "concept", "source_file": "public/placas/esp32.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_cp2102_usb_bridge", "label": "ESP32 CP2102 USB-UART Bridge", "file_type": "concept", "source_file": "public/placas/esp32.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_micro_usb_port", "label": "ESP32 Micro-USB Port", "file_type": "concept", "source_file": "public/placas/esp32.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_en_boot_buttons", "label": "ESP32 EN and Boot Buttons", "file_type": "concept", "source_file": "public/placas/esp32.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_specs", "label": "ESP32 Specs (Xtensa dual-core 240MHz, Wi-Fi + BT 4.2/BLE, 520KB SRAM, 34 GPIOs)", "file_type": "concept", "source_file": "public/placas/esp32.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "public_placas_esp32_pinout_diagram", "target": "public_placas_esp32_wroom_module", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_pinout_diagram", "target": "public_placas_esp32_cp2102_usb_bridge", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_pinout_diagram", "target": "public_placas_esp32_micro_usb_port", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_pinout_diagram", "target": "public_placas_esp32_en_boot_buttons", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_pinout_diagram", "target": "public_placas_esp32_specs", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_pinout_diagram", "target": "public_placas_esp32_s2_pinout_diagram", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.9, "source_file": "public/placas/esp32.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_cp2102_usb_bridge", "target": "public_placas_esp32_s3_cp2102_usb_bridge", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "public/placas/esp32.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_wroom_module", "target": "public_placas_esp32_s3_wroom_module", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "public/placas/esp32.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_en_boot_buttons", "target": "public_placas_esp32_s2_boot_reset_buttons", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "public/placas/esp32.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_specs", "target": "public_placas_esp32_s3_specs", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "public/placas/esp32.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_micro_usb_port", "target": "public_placas_esp32_s2_usb_and_uart_ports", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.75, "source_file": "public/placas/esp32.png", "source_location": null, "weight": 1.0}], "hyperedges": [{"id": "espressif_devkit_board_gallery", "label": "Espressif ESP32 Dev Board Image Gallery", "nodes": ["public_placas_esp32_pinout_diagram", "public_placas_esp32_s2_pinout_diagram", "public_placas_esp32_s3_pinout_diagram", "public_placas_esp32_s31_board_photo"], "relation": "participate_in", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "public/placas/esp32.png"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "public_placas_esp32_s3_pinout_diagram", "label": "ESP32-S3-DevKitC-1 Pinout Diagram", "file_type": "image", "source_file": "public/placas/esp32-s3.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_s3_wroom_module", "label": "ESP32-S3-WROOM Module", "file_type": "concept", "source_file": "public/placas/esp32-s3.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_s3_cp2102_usb_bridge", "label": "ESP32-S3 CP2102 USB-UART Bridge", "file_type": "concept", "source_file": "public/placas/esp32-s3.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_s3_boot_reset_buttons", "label": "ESP32-S3 BOOT and RESET Buttons", "file_type": "concept", "source_file": "public/placas/esp32-s3.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_s3_specs", "label": "ESP32-S3 Specs (Xtensa dual-core 240MHz, Wi-Fi + BLE 5, 512KB SRAM, 45 GPIOs)", "file_type": "concept", "source_file": "public/placas/esp32-s3.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "public_placas_esp32_s3_pinout_diagram", "target": "public_placas_esp32_s3_wroom_module", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-s3.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_s3_pinout_diagram", "target": "public_placas_esp32_s3_cp2102_usb_bridge", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-s3.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_s3_pinout_diagram", "target": "public_placas_esp32_s3_boot_reset_buttons", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-s3.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_s3_pinout_diagram", "target": "public_placas_esp32_s3_specs", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-s3.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_s2_pinout_diagram", "target": "public_placas_esp32_s3_pinout_diagram", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "public/placas/esp32-s3.png", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "public_placas_esp32_s2_pinout_diagram", "label": "ESP32-S2-DevKitC-1 Pinout Diagram", "file_type": "image", "source_file": "public/placas/esp32-s2.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_s2_solo_module", "label": "ESP32-S2-SOLO Module", "file_type": "concept", "source_file": "public/placas/esp32-s2.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_s2_rgb_led", "label": "ESP32-S2 RGB LED @ IO18", "file_type": "concept", "source_file": "public/placas/esp32-s2.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_s2_usb_and_uart_ports", "label": "ESP32-S2 USB and UART Micro-USB Ports", "file_type": "concept", "source_file": "public/placas/esp32-s2.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_s2_boot_reset_buttons", "label": "ESP32-S2 BOOT and RESET Buttons", "file_type": "concept", "source_file": "public/placas/esp32-s2.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_s2_specs", "label": "ESP32-S2 Specs (Xtensa single-core 240MHz, Wi-Fi, 320KB SRAM, 43 GPIOs)", "file_type": "concept", "source_file": "public/placas/esp32-s2.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "public_placas_esp32_s2_pinout_diagram", "target": "public_placas_esp32_s2_solo_module", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-s2.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_s2_pinout_diagram", "target": "public_placas_esp32_s2_rgb_led", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-s2.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_s2_pinout_diagram", "target": "public_placas_esp32_s2_usb_and_uart_ports", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-s2.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_s2_pinout_diagram", "target": "public_placas_esp32_s2_boot_reset_buttons", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-s2.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_s2_pinout_diagram", "target": "public_placas_esp32_s2_specs", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-s2.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_s2_rgb_led", "target": "public_placas_esp32_s31_rgb_led", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "public/placas/esp32-s2.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_s2_boot_reset_buttons", "target": "public_placas_esp32_s3_boot_reset_buttons", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "public/placas/esp32-s2.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_s2_specs", "target": "public_placas_esp32_s3_specs", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "public/placas/esp32-s2.png", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -1 +0,0 @@
{"nodes": [{"id": "public_placas_esp32_c6_board", "label": "ESP32-C6-DevKitC-1 Pinout Diagram", "file_type": "image", "source_file": "public/placas/esp32-c6.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c6_wroom_1_module", "label": "ESP32-C6-WROOM-1 Module", "file_type": "concept", "source_file": "public/placas/esp32-c6.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c6_usb_uart_ports", "label": "ESP32-C6 UART and USB Type-C Ports", "file_type": "concept", "source_file": "public/placas/esp32-c6.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c6_reset_boot_buttons", "label": "ESP32-C6 RESET and BOOT Buttons", "file_type": "concept", "source_file": "public/placas/esp32-c6.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c6_rgb_led", "label": "ESP32-C6 RGB LED on GPIO8", "file_type": "concept", "source_file": "public/placas/esp32-c6.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_placas_esp32_c6_specs", "label": "ESP32-C6 Specs: RISC-V 160MHz, Wi-Fi 6, BLE 5, 802.15.4", "file_type": "concept", "source_file": "public/placas/esp32-c6.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "public_placas_esp32_c6_board", "target": "public_placas_esp32_c6_wroom_1_module", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c6.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c6_board", "target": "public_placas_esp32_c6_usb_uart_ports", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c6.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c6_board", "target": "public_placas_esp32_c6_reset_boot_buttons", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c6.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c6_board", "target": "public_placas_esp32_c6_rgb_led", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c6.png", "source_location": null, "weight": 1.0}, {"source": "public_placas_esp32_c6_board", "target": "public_placas_esp32_c6_specs", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/placas/esp32-c6.png", "source_location": null, "weight": 1.0}], "hyperedges": [{"id": "espressif_riscv_devkit_family", "label": "Espressif RISC-V DevKit Board Diagrams", "nodes": ["public_placas_esp32_c6_board", "public_placas_esp32_c61_board", "public_placas_esp32_h2_board", "public_placas_esp32_p4_board"], "relation": "form", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "public/placas/esp32-c6.png"}, {"id": "devkit_programming_interface", "label": "Common DevKit Programming/Flashing Interface", "nodes": ["public_placas_esp32_c6_reset_boot_buttons", "public_placas_esp32_c61_reset_boot_buttons", "public_placas_esp32_p4_reset_boot_buttons", "public_placas_esp32_c6_usb_uart_ports"], "relation": "participate_in", "confidence": "INFERRED", "confidence_score": 0.75, "source_file": "public/placas/esp32-c6.png"}]}
@@ -1 +0,0 @@
{"nodes": [{"id": "public_datasheets_esp32_c5_esp32_c5_series", "label": "ESP32-C5 Series", "file_type": "paper", "source_file": "public/datasheets/ESP32-C5.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c5_hp_risc_v_core", "label": "HP RISC-V 32-bit Processor (240 MHz)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C5.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c5_lp_risc_v_core", "label": "LP RISC-V 32-bit Processor (48 MHz)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C5.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c5_wi_fi_6_dual_band", "label": "Dual-band Wi-Fi 6 (IEEE 802.11ax, 2.4/5 GHz)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C5.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c5_bluetooth_le_5", "label": "Bluetooth LE 5 (Core 6.0) / Bluetooth mesh 1.1", "file_type": "concept", "source_file": "public/datasheets/ESP32-C5.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c5_ieee_802_15_4", "label": "IEEE 802.15.4 Radio", "file_type": "concept", "source_file": "public/datasheets/ESP32-C5.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c5_thread_1_4", "label": "Thread 1.4", "file_type": "concept", "source_file": "public/datasheets/ESP32-C5.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c5_zigbee_3_0", "label": "Zigbee 3.0", "file_type": "concept", "source_file": "public/datasheets/ESP32-C5.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c5_hp_sram_384kb", "label": "HP SRAM 384 KB", "file_type": "concept", "source_file": "public/datasheets/ESP32-C5.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c5_lp_sram_16kb", "label": "LP SRAM 16 KB", "file_type": "concept", "source_file": "public/datasheets/ESP32-C5.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c5_rom_320kb", "label": "320 KB ROM", "file_type": "concept", "source_file": "public/datasheets/ESP32-C5.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c5_flash_psram_controller", "label": "External Flash/PSRAM Controller with Cache", "file_type": "concept", "source_file": "public/datasheets/ESP32-C5.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c5_gpio_29", "label": "29 GPIOs", "file_type": "concept", "source_file": "public/datasheets/ESP32-C5.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c5_can_fd", "label": "Two CAN FD Controllers (ISO 11898-1:2015)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C5.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c5_usb_serial_jtag", "label": "USB Serial/JTAG Controller", "file_type": "concept", "source_file": "public/datasheets/ESP32-C5.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c5_sdio_slave", "label": "SDIO Slave Controller", "file_type": "concept", "source_file": "public/datasheets/ESP32-C5.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c5_mcpwm", "label": "Motor Control PWM (MCPWM)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C5.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c5_parlio", "label": "Parallel IO Interface (PARLIO)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C5.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_c5_etm", "label": "Event Task Matrix (ETM)", "file_type": "concept", "source_file": "public/datasheets/ESP32-C5.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": nulLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "public_datasheets_esp32_s3_chip", "label": "ESP32-S3 Series SoC", "file_type": "paper", "source_file": "public/datasheets/ESP32-S3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s3_xtensa_lx7", "label": "Xtensa Dual-Core 32-bit LX7 Microprocessor (240 MHz)", "file_type": "concept", "source_file": "public/datasheets/ESP32-S3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s3_simd_instructions", "label": "128-bit Data Bus and Dedicated SIMD Instructions", "file_type": "concept", "source_file": "public/datasheets/ESP32-S3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s3_fpu", "label": "Single Precision Floating Point Unit (FPU)", "file_type": "concept", "source_file": "public/datasheets/ESP32-S3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s3_wifi", "label": "2.4 GHz Wi-Fi (IEEE 802.11 b/g/n)", "file_type": "concept", "source_file": "public/datasheets/ESP32-S3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s3_bluetooth_le", "label": "Bluetooth 5 LE and Bluetooth Mesh", "file_type": "concept", "source_file": "public/datasheets/ESP32-S3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s3_ble_baseband", "label": "Bluetooth LE Baseband and Link Controller", "file_type": "concept", "source_file": "public/datasheets/ESP32-S3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s3_wifi_mac_baseband", "label": "Wi-Fi MAC and Baseband", "file_type": "concept", "source_file": "public/datasheets/ESP32-S3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s3_rf_module", "label": "RF Module (Balun, PA, LNA, Antenna Switch)", "file_type": "concept", "source_file": "public/datasheets/ESP32-S3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s3_sram", "label": "512 KB SRAM", "file_type": "concept", "source_file": "public/datasheets/ESP32-S3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s3_rom", "label": "384 KB ROM", "file_type": "concept", "source_file": "public/datasheets/ESP32-S3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s3_psram", "label": "In-Package Flash and PSRAM", "file_type": "concept", "source_file": "public/datasheets/ESP32-S3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s3_l1_cache", "label": "L1 Cache", "file_type": "concept", "source_file": "public/datasheets/ESP32-S3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s3_ulp_coprocessor", "label": "ULP Coprocessor (ULP-RISC-V, ULP-FSM)", "file_type": "concept", "source_file": "public/datasheets/ESP32-S3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s3_gdma", "label": "General DMA Controller (GDMA)", "file_type": "concept", "source_file": "public/datasheets/ESP32-S3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s3_usb_otg", "label": "Full-Speed USB OTG", "file_type": "concept", "source_file": "public/datasheets/ESP32-S3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s3_usb_serial_jtag", "label": "USB Serial/JTAG Controller", "file_type": "concept", "source_file": "public/datasheets/ESP32-S3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s3_sdmmc_host", "label": "SD/MMC Host Controller", "file_type": "concept", "source_file": "public/datasheets/ESP32-S3.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_s3_lcd_camera_interface", "label": "LCD Interface and DVP Camera Interface", "file_type": "concept", "source_file": "public/datasheets/ESP32-S3.pdf", "source_location": null, "Line truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "public_datasheets_esp32_h2_esp32_h2", "label": "ESP32-H2 SoC", "file_type": "paper", "source_file": "public/datasheets/ESP32-H2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_h2_risc_v_processor", "label": "RISC-V 32-bit Single-Core Processor (96 MHz)", "file_type": "concept", "source_file": "public/datasheets/ESP32-H2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_h2_bluetooth_le_5_3", "label": "Bluetooth LE 5.3", "file_type": "concept", "source_file": "public/datasheets/ESP32-H2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_h2_ieee_802_15_4", "label": "IEEE 802.15.4", "file_type": "concept", "source_file": "public/datasheets/ESP32-H2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_h2_thread", "label": "Thread", "file_type": "concept", "source_file": "public/datasheets/ESP32-H2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_h2_zigbee_3_0", "label": "Zigbee 3.0", "file_type": "concept", "source_file": "public/datasheets/ESP32-H2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_h2_matter", "label": "Matter", "file_type": "concept", "source_file": "public/datasheets/ESP32-H2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_h2_sram_320_kb", "label": "SRAM 320 KB", "file_type": "concept", "source_file": "public/datasheets/ESP32-H2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_h2_rom_128_kb", "label": "ROM 128 KB", "file_type": "concept", "source_file": "public/datasheets/ESP32-H2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_h2_lp_memory_4_kb", "label": "LP Memory 4 KB", "file_type": "concept", "source_file": "public/datasheets/ESP32-H2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_h2_in_package_flash", "label": "2 MB or 4 MB In-Package Flash", "file_type": "concept", "source_file": "public/datasheets/ESP32-H2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_h2_secure_boot", "label": "Secure Boot", "file_type": "concept", "source_file": "public/datasheets/ESP32-H2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_h2_flash_encryption", "label": "Flash Encryption", "file_type": "concept", "source_file": "public/datasheets/ESP32-H2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_h2_crypto_accelerators", "label": "Crypto Accelerators (AES, SHA, RSA, ECC, ECDSA, HMAC, RNG)", "file_type": "concept", "source_file": "public/datasheets/ESP32-H2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_h2_tee", "label": "TEE and Permission Control", "file_type": "concept", "source_file": "public/datasheets/ESP32-H2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_h2_power_glitch_detector", "label": "Power Glitch Detector", "file_type": "concept", "source_file": "public/datasheets/ESP32-H2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_h2_usb_serial_jtag", "label": "USB Serial/JTAG Controller", "file_type": "concept", "source_file": "public/datasheets/ESP32-H2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_h2_twai", "label": "TWAI Controller (CAN 2.0)", "file_type": "concept", "source_file": "public/datasheets/ESP32-H2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_h2_mcpwm", "label": "Motor Control PWM (MCPWM)", "file_type": "concept", "source_file": "public/datasheets/ESP32-H2.pdf", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "public_datasheets_esp32_h2_parlio", "label": "ParalLine truncated
@@ -1 +0,0 @@
{"nodes": [{"id": "readme_espdocs", "label": "ESPDocs - Documenta\u00e7\u00e3o ESP32 em Portugu\u00eas", "file_type": "document", "source_file": "README.md", "source_location": null, "source_url": null, "captured_at": null, "author": "Lucas Rayan Guerra", "contributor": null}, {"id": "readme_nextjs_app_router", "label": "Next.js 15 App Router", "file_type": "concept", "source_file": "README.md", "source_location": "L89", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_react19", "label": "React 19", "file_type": "concept", "source_file": "README.md", "source_location": "L90", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_tailwind_css", "label": "Tailwind CSS 4", "file_type": "concept", "source_file": "README.md", "source_location": "L91", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_material_ui", "label": "Material-UI", "file_type": "concept", "source_file": "README.md", "source_location": "L92", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_google_sheets_api", "label": "Google Sheets API Integration", "file_type": "concept", "source_file": "README.md", "source_location": "L93", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_marketplace_placas", "label": "Marketplace de Placas (Cat\u00e1logo)", "file_type": "concept", "source_file": "README.md", "source_location": "L16,L33-41,L65", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_api_placas_route", "label": "API do Marketplace (app/api/placas/route.js)", "file_type": "code", "source_file": "README.md", "source_location": "L62", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_google_sheets_api_key", "label": "GOOGLE_SHEETS_API_KEY env var", "file_type": "concept", "source_file": "README.md", "source_location": "L40,L108", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_series_esp32", "label": "S\u00e9ries ESP32", "file_type": "concept", "source_file": "README.md", "source_location": "L11", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_frameworks", "label": "Frameworks ESP32 (ESP-IDF, Arduino, MicroPython)", "file_type": "concept", "source_file": "README.md", "source_location": "L12", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_comparacao", "label": "Compara\u00e7\u00e3o de S\u00e9ries", "file_type": "concept", "source_file": "README.md", "source_location": "L13", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_diagramas_interativos", "label": "Diagramas Interativos de Conex\u00f5es", "file_type": "concept", "source_file": "README.md", "source_location": "L14", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_exemplos_codigo", "label": "Exemplos de C\u00f3digo", "file_type": "concept", "source_file": "README.md", "source_location": "L15", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_vercel_deploy", "label": "Deploy na Vercel", "file_type": "concept", "source_file": "README.md", "source_location": "L104-110", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_unofficial_disclaimer", "label": "Projeto n\u00e3o oficial (sem afilia\u00e7\u00e3o Espressif)", "file_type": "concept", "source_file": "README.md", "source_location": "L116-118", "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_mit_license", "label": "Licen\u00e7a MIT", "file_type": "concept", "source_file": "README.md", "source_location": "L112-114", "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "readme_espdocs", "target": "readme_nextjs_app_router", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "README.md", "source_location": "L89", "weight": 1.0}, {"source": "readme_espdocs", "target": "readme_react19", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "README.md", "source_location": "L90", "weight": 1.0}, {"source": "readme_espdocs", "target": "readme_tailwind_css", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "README.md", "source_location": "L91", "weight": 1.0}, {"source": "readme_espdocs", "target": "readme_material_ui", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "README.md", "source_location": "L92", "weight": 1.0}, {"source": "readme_espdocs", "target": "readme_google_sheets_api", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_fileLine truncated
-1
View File
@@ -1 +0,0 @@
{"/home/lucas/Documents/Pessoal/espdocs/README.md":{"size":4471,"mtime_ns":1784028542890171611,"word_count":510,"hash":"f024a922261e513412d492a32ff2e4aa2825835c9493bb9a050162297eb55a46"},"/home/lucas/Documents/Pessoal/espdocs/app/api/placas/route.js":{"size":1675,"mtime_ns":1784028542890867911,"word_count":178},"/home/lucas/Documents/Pessoal/espdocs/app/catalogo/page.jsx":{"size":15310,"mtime_ns":1784028542890867911,"word_count":1248},"/home/lucas/Documents/Pessoal/espdocs/app/comparacao/page.jsx":{"size":15359,"mtime_ns":1784028542890867911,"word_count":1356},"/home/lucas/Documents/Pessoal/espdocs/app/frameworks/[key]/page.jsx":{"size":11842,"mtime_ns":1784028542891171634,"word_count":937},"/home/lucas/Documents/Pessoal/espdocs/app/frameworks/page.jsx":{"size":12568,"mtime_ns":1784028542891171634,"word_count":935},"/home/lucas/Documents/Pessoal/espdocs/app/glossario/page.jsx":{"size":25676,"mtime_ns":1784028542891171634,"word_count":2038},"/home/lucas/Documents/Pessoal/espdocs/app/layout.jsx":{"size":888,"mtime_ns":1784028542891171634,"word_count":90},"/home/lucas/Documents/Pessoal/espdocs/app/page.jsx":{"size":11621,"mtime_ns":1784028542891171634,"word_count":998},"/home/lucas/Documents/Pessoal/espdocs/app/seletor/page.jsx":{"size":44357,"mtime_ns":1784028542892171657,"word_count":3889},"/home/lucas/Documents/Pessoal/espdocs/app/series/[key]/page.jsx":{"size":23930,"mtime_ns":1784028542893045947,"word_count":2156},"/home/lucas/Documents/Pessoal/espdocs/app/series/page.jsx":{"size":10555,"mtime_ns":1784028542893045947,"word_count":795},"/home/lucas/Documents/Pessoal/espdocs/app/sobre/page.jsx":{"size":15276,"mtime_ns":1784028542893045947,"word_count":1340},"/home/lucas/Documents/Pessoal/espdocs/components/BoardCard.jsx":{"size":3960,"mtime_ns":1784028542893171680,"word_count":340},"/home/lucas/Documents/Pessoal/espdocs/components/CodeExample.jsx":{"size":6992,"mtime_ns":1784028542893782065,"word_count":664},"/home/lucas/Documents/Pessoal/espdocs/components/ConnectionsDiagram.jsx":{"size":30167,"mtime_ns":1784028542893782065,"word_count":2538},"/home/lucas/Documents/Pessoal/espdocs/components/Footer.jsx":{"size":7132,"mtime_ns":1784028542893782065,"word_count":600},"/home/lucas/Documents/Pessoal/espdocs/components/Header.jsx":{"size":8645,"mtime_ns":1784028542893782065,"word_count":795},"/home/lucas/Documents/Pessoal/espdocs/components/Providers.jsx":{"size":236,"mtime_ns":1784028542893782065,"word_count":25},"/home/lucas/Documents/Pessoal/espdocs/components/SeriesTabMenu.jsx":{"size":3057,"mtime_ns":1784028542893782065,"word_count":254},"/home/lucas/Documents/Pessoal/espdocs/eslint.config.mjs":{"size":505,"mtime_ns":1784028542893782065,"word_count":53},"/home/lucas/Documents/Pessoal/espdocs/jsconfig.json":{"size":73,"mtime_ns":1784028542893782065,"word_count":10,"hash":"7bb1966576768c2921b8b0f30ee3c68796385e8b463095701d1d16f685fdac8f"},"/home/lucas/Documents/Pessoal/espdocs/next.config.mjs":{"size":92,"mtime_ns":1784028542893782065,"word_count":11},"/home/lucas/Documents/Pessoal/espdocs/package.json":{"size":736,"mtime_ns":1784028542895171727,"word_count":62,"hash":"220b028893e2ec98934d115acb4bd109e16a55d212a4c70691173399a31880c6"},"/home/lucas/Documents/Pessoal/espdocs/postcss.config.mjs":{"size":81,"mtime_ns":1784028542895171727,"word_count":10},"/home/lucas/Documents/Pessoal/espdocs/public/conexoes/ESP32-C2.json":{"size":8238,"mtime_ns":1784028542896543468,"word_count":773,"hash":"dbd88954e9bb70a2d6a73a76656f0ee2bac1cb5c6c505fdf326e17696b6f8291"},"/home/lucas/Documents/Pessoal/espdocs/public/conexoes/ESP32-C3.json":{"size":15265,"mtime_ns":1784028542896793212,"word_count":1486,"hash":"68657e046bfd135140fa84b23e38d5e903c240ceb93c3387fc916c7940e9f867"},"/home/lucas/Documents/Pessoal/espdocs/public/conexoes/ESP32-C5.json":{"size":22955,"mtime_ns":1784028542896793212,"word_count":2255,"hash":"efffcbcc8529ae3289a998fe45f12752a4ae5a628087591120debbcbb9c17794"},"/home/lucas/Documents/Pessoal/espdocs/public/conexoes/ESP32-C6.json":{"size":20294,"mtime_ns":1784028542896793212,"word_count":1955,"hash":"b50f12a181222367869fdd6fbfbc579138121c898c66f6495c2fe8d3ccdff21d"},"/home/lucas/Documents/Pessoal/espdocs/public/conexoes/ESP32-C61.json":{"size":14600,"mtime_ns":1784028542896793212,"word_count":1390,"hash":"db9d27d0c1f29410204ce35d2c546e96b5e495b3e6ee3a6710de2478f42e03f2"},"/home/lucas/Documents/Pessoal/espdocs/public/conexoes/ESP32-H2.json":{"size":13384,"mtime_ns":1784028542896793212,"word_count":1268,"hash":"14f5eb3f5e494d0b93a26e0b38ee2cdbfa9569c2474282f6200c48fa5223d55b"},"/home/lucas/Documents/Pessoal/espdocs/public/conexoes/ESP32-P4.json":{"size":41441,"mtime_ns":1784028542896793212,"word_count":3727,"hash":"9eb7ecea3b3410ce021146fe4551f58ccf75f755756b4f008758748050ddc5b8"},"/home/lucas/Documents/Pessoal/espdocs/public/conexoes/ESP32-S2.json":{"size":27808,"mtime_ns":1784028542896793212,"word_count":2573,"hash":"dc4560c405305b4603f7cef48c72475a58cab40de607372f886a1a21a4c44555"},"/home/lucas/Documents/PessLine truncated
-12
View File
@@ -1,12 +0,0 @@
{
"runs": [
{
"date": "2026-07-14T11:40:04.053012+00:00",
"input_tokens": 435411,
"output_tokens": 0,
"files": 70
}
],
"total_input_tokens": 435411,
"total_output_tokens": 0
}
-320
View File
@@ -1,320 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>graphify - graphify-out/graph.html</title>
<script src="https://unpkg.com/vis-network@9.1.6/standalone/umd/vis-network.min.js"
integrity="sha384-Ux6phic9PEHJ38YtrijhkzyJ8yQlH8i/+buBR8s3mAZOJrP1gwyvAcIYl3GWtpX1"
crossorigin="anonymous"></script>
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body { background: #0f0f1a; color: #e0e0e0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; display: flex; height: 100vh; overflow: hidden; }
#graph { flex: 1; }
#sidebar { width: 280px; background: #1a1a2e; border-left: 1px solid #2a2a4e; display: flex; flex-direction: column; overflow: hidden; }
#search-wrap { padding: 12px; border-bottom: 1px solid #2a2a4e; }
#search { width: 100%; background: #0f0f1a; border: 1px solid #3a3a5e; color: #e0e0e0; padding: 7px 10px; border-radius: 6px; font-size: 13px; outline: none; }
#search:focus { border-color: #4E79A7; }
#search-results { max-height: 140px; overflow-y: auto; padding: 4px 12px; border-bottom: 1px solid #2a2a4e; display: none; }
.search-item { padding: 4px 6px; cursor: pointer; border-radius: 4px; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.search-item:hover { background: #2a2a4e; }
#info-panel { padding: 14px; border-bottom: 1px solid #2a2a4e; min-height: 140px; }
#info-panel h3 { font-size: 13px; color: #aaa; margin-bottom: 8px; text-transform: uppercase; letter-spacing: 0.05em; }
#info-content { font-size: 13px; color: #ccc; line-height: 1.6; }
#info-content .field { margin-bottom: 5px; }
#info-content .field b { color: #e0e0e0; }
#info-content .empty { color: #555; font-style: italic; }
.neighbor-link { display: block; padding: 2px 6px; margin: 2px 0; border-radius: 3px; cursor: pointer; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; border-left: 3px solid #333; }
.neighbor-link:hover { background: #2a2a4e; }
#neighbors-list { max-height: 160px; overflow-y: auto; margin-top: 4px; }
#legend-wrap { flex: 1; overflow-y: auto; padding: 12px; }
#legend-wrap h3 { font-size: 13px; color: #aaa; margin-bottom: 10px; text-transform: uppercase; letter-spacing: 0.05em; }
.legend-item { display: flex; align-items: center; gap: 8px; padding: 4px 0; cursor: pointer; border-radius: 4px; font-size: 12px; }
.legend-item:hover { background: #2a2a4e; padding-left: 4px; }
.legend-item.dimmed { opacity: 0.35; }
.legend-dot { width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0; }
.legend-label { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.legend-count { color: #666; font-size: 11px; }
#stats { padding: 10px 14px; border-top: 1px solid #2a2a4e; font-size: 11px; color: #555; }
#legend-controls { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; padding: 4px 0; }
#legend-controls label { display: flex; align-items: center; gap: 6px; cursor: pointer; font-size: 12px; color: #aaa; user-select: none; }
#legend-controls label:hover { color: #e0e0e0; }
.legend-cb, #select-all-cb { appearance: none; -webkit-appearance: none; width: 14px; height: 14px; border: 1.5px solid #3a3a5e; border-radius: 3px; background: #0f0f1a; cursor: pointer; position: relative; flex-shrink: 0; }
.legend-cb:checked, #select-all-cb:checked { background: #4E79A7; border-color: #4E79A7; }
.legend-cb:checked::after, #select-all-cb:checked::after { content: ''; position: absolute; left: 3.5px; top: 1px; width: 4px; height: 7px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
#select-all-cb:indeterminate { background: #4E79A7; border-color: #4E79A7; }
#select-all-cb:indeterminate::after { content: ''; position: absolute; left: 2px; top: 5px; width: 8px; height: 2px; background: #fff; border: none; transform: none; }
</style>
</head>
<body>
<div id="graph"></div>
<div id="sidebar">
<div id="search-wrap">
<input id="search" type="text" placeholder="Search nodes..." autocomplete="off">
<div id="search-results"></div>
</div>
<div id="info-panel">
<h3>Node Info</h3>
<div id="info-content"><span class="empty">Click a node to inspect it</span></div>
</div>
<div id="legend-wrap">
<h3>Communities</h3>
<div id="legend-controls">
<label><input type="checkbox" id="select-all-cb" checked onchange="toggleAllCommunities(!this.checked)">Select All</label>
</div>
<div id="legend"></div>
</div>
<div id="stats">510 nodes &middot; 550 edges &middot; 78 communities</div>
</div>
<script>
const RAW_NODES = [{"id": "app_api_placas_route", "label": "route.js", "color": {"background": "#BAB0AC", "border": "#BAB0AC", "highlight": {"background": "#ffffff", "border": "#BAB0AC"}}, "size": 11.1, "font": {"size": 0, "color": "#ffffff"}, "title": "route.js", "community": 49, "community_name": "route.js", "source_file": "app/api/placas/route.js", "file_type": "code", "degree": 1}, {"id": "app_api_placas_route_get", "label": "GET()", "color": {"background": "#BAB0AC", "border": "#BAB0AC", "highlight": {"background": "#ffffff", "border": "#BAB0AC"}}, "size": 11.1, "font": {"size": 0, "color": "#ffffff"}, "title": "GET()", "community": 49, "community_name": "route.js", "source_file": "app/api/placas/route.js", "file_type": "code", "degree": 1}, {"id": "app_catalogo_page", "label": "page.jsx", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 11.1, "font": {"size": 0, "color": "#ffffff"}, "title": "page.jsx", "community": 50, "community_name": "page.jsx", "source_file": "app/catalogo/page.jsx", "file_type": "code", "degree": 1}, {"id": "app_catalogo_page_placaspage", "label": "PlacasPage()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 11.1, "font": {"size": 0, "color": "#ffffff"}, "title": "PlacasPage()", "community": 50, "community_name": "page.jsx", "source_file": "app/catalogo/page.jsx", "file_type": "code", "degree": 1}, {"id": "app_comparacao_page", "label": "page.jsx", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 12.1, "font": {"size": 0, "color": "#ffffff"}, "title": "page.jsx", "community": 45, "community_name": "page.jsx", "source_file": "app/comparacao/page.jsx", "file_type": "code", "degree": 2}, {"id": "app_comparacao_page_categoryicons", "label": "categoryIcons", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 11.1, "font": {"size": 0, "color": "#ffffff"}, "title": "categoryIcons", "community": 45, "community_name": "page.jsx", "source_file": "app/comparacao/page.jsx", "file_type": "code", "degree": 1}, {"id": "app_comparacao_page_comparacao", "label": "Comparacao()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 11.1, "font": {"size": 0, "color": "#ffffff"}, "title": "Comparacao()", "community": 45, "community_name": "page.jsx", "source_file": "app/comparacao/page.jsx", "file_type": "code", "degree": 1}, {"id": "app_frameworks_key_page", "label": "page.jsx", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 13.2, "font": {"size": 0, "color": "#ffffff"}, "title": "page.jsx", "community": 42, "community_name": "page.jsx", "source_file": "app/frameworks/[key]/page.jsx", "file_type": "code", "degree": 3}, {"id": "app_frameworks_key_page_frameworkdetail", "label": "FrameworkDetail()", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 11.1, "font": {"size": 0, "color": "#ffffff"}, "title": "FrameworkDetail()", "community": 42, "community_name": "page.jsx", "source_file": "app/frameworks/[key]/page.jsx", "file_type": "code", "degree": 1}, {"id": "app_frameworks_key_page_generatemetadata", "label": "generateMetadata()", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 11.1, "font": {"size": 0, "color": "#ffffff"}, "title": "generateMetadata()", "community": 42, "community_name": "page.jsx", "source_file": "app/frameworks/[key]/page.jsx", "file_type": "code", "degree": 1}, {"id": "app_frameworks_key_page_generatestaticparams", "label": "generateStaticParams()", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 11.1, "font": {"size": 0, "color": "#ffffff"}, "title": "generateStaticParams()", "community": 42, "community_name": "page.jsx", "source_file": "app/frameworks/[key]/page.jsx", "file_type": "code", "degree": 1}, {"id": "app_frameworks_page", "label": "page.jsx", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 11.1, "font": {"size": 0, "color": "#ffffff"}, "title": "page.jsx", "community": 51, "community_name": "page.jsx", "source_file": "app/frameworks/page.jsx", "file_type": "code", "degree": 1}, {"id": "app_frameworks_page_frameworks", "label": "Frameworks()", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 11.1, "font": {"size": 0, "color": "#ffffff"}, "title": "Frameworks()", "community": 51, "community_name": "page.jsx", "source_file": "app/framewoLine truncated
const RAW_EDGES = [{"from": "app_api_placas_route", "to": "app_api_placas_route_get", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_catalogo_page", "to": "app_catalogo_page_placaspage", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_comparacao_page", "to": "app_comparacao_page_categoryicons", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_comparacao_page", "to": "app_comparacao_page_comparacao", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_frameworks_key_page", "to": "app_frameworks_key_page_frameworkdetail", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_frameworks_key_page", "to": "app_frameworks_key_page_generatemetadata", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_frameworks_key_page", "to": "app_frameworks_key_page_generatestaticparams", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_frameworks_page", "to": "app_frameworks_page_frameworks", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_glossario_page", "to": "app_glossario_page_glossario", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_glossario_page", "to": "app_glossario_page_metadata", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_layout", "to": "app_layout_inter", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_layout", "to": "app_layout_metadata", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_layout", "to": "app_layout_outfit", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_layout", "to": "app_layout_rootlayout", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_page", "to": "app_page_externallinkicon", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_page", "to": "app_page_home", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_seletor_page", "to": "app_seletor_page_getoptionicon", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_seletor_page", "to": "app_seletor_page_iconmap", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_seletor_page", "to": "app_seletor_page_seletor", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_seletor_page_seletor", "to": "app_seletor_page_getoptionicon", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_series_key_page", "to": "app_series_key_page_generatemetadata", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_series_key_page", "to": "app_series_key_page_generatestaticparams", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_series_key_page", "to": "app_series_key_page_seriedetail", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_series_key_page", "to": "app_series_key_page_specsection", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_series_page", "to": "app_Line truncated
const LEGEND = [{"cid": 0, "color": "#4E79A7", "label": "Next.js App Pages", "count": 5}, {"cid": 1, "color": "#F28E2B", "label": "ESP32 Original SoC Silicon", "count": 46}, {"cid": 2, "color": "#E15759", "label": "Xtensa DevKit Board Diagrams", "count": 31}, {"cid": 3, "color": "#76B7B2", "label": "Layout and Marketplace API", "count": 23}, {"cid": 4, "color": "#59A14F", "label": "ESP32-C2 DevKit and Branding", "count": 28}, {"cid": 5, "color": "#EDC948", "label": "C6/C61 Wi-Fi 6 DevKits", "count": 27}, {"cid": 6, "color": "#B07AA1", "label": "Lint and Build Tooling", "count": 20}, {"cid": 7, "color": "#FF9DA7", "label": "ESP32-C61 Silicon Subsystems", "count": 20}, {"cid": 8, "color": "#9C755F", "label": "ESP32-C3 Silicon Subsystems", "count": 19}, {"cid": 9, "color": "#BAB0AC", "label": "ESP32-C5 Silicon Subsystems", "count": 18}, {"cid": 10, "color": "#4E79A7", "label": "ESP32-H2 Silicon Subsystems", "count": 18}, {"cid": 11, "color": "#F28E2B", "label": "ESPDocs Site Content Pillars", "count": 1}, {"cid": 12, "color": "#E15759", "label": "ESP32-C6 Silicon Subsystems", "count": 17}, {"cid": 13, "color": "#76B7B2", "label": "ESP32-P4 Silicon Subsystems", "count": 17}, {"cid": 14, "color": "#59A14F", "label": "ESP32-S3 Silicon Subsystems", "count": 17}, {"cid": 15, "color": "#EDC948", "label": "ESP32-S2 Silicon Subsystems", "count": 16}, {"cid": 16, "color": "#B07AA1", "label": "ESP32-C2 Silicon Subsystems", "count": 15}, {"cid": 17, "color": "#FF9DA7", "label": "Classic Wi-Fi and BLE Radios", "count": 8}, {"cid": 18, "color": "#9C755F", "label": "Modern BLE and Wi-Fi 6 Radios", "count": 7}, {"cid": 19, "color": "#BAB0AC", "label": "802.15.4 Thread and Zigbee", "count": 7}, {"cid": 20, "color": "#4E79A7", "label": "P4 Camera and Video Pipeline", "count": 7}, {"cid": 21, "color": "#F28E2B", "label": "CPU Cores and SIMD Extensions", "count": 6}, {"cid": 22, "color": "#E15759", "label": "JS Path Aliases", "count": 5}, {"cid": 23, "color": "#76B7B2", "label": "ESP-Matter Code Example", "count": 4}, {"cid": 24, "color": "#59A14F", "label": "Shared GDMA Controllers", "count": 3}, {"cid": 25, "color": "#EDC948", "label": "RISC-V Core Speed Variants", "count": 3}, {"cid": 26, "color": "#B07AA1", "label": "Secure Boot (Xtensa Family)", "count": 3}, {"cid": 27, "color": "#FF9DA7", "label": "Thread 1.4 Zigbee Radio", "count": 3}, {"cid": 28, "color": "#9C755F", "label": "Bluetooth LE 5.3 Variants", "count": 3}, {"cid": 29, "color": "#BAB0AC", "label": "RISC-V Core Clock Variants", "count": 3}, {"cid": 30, "color": "#4E79A7", "label": "Secure Boot (RISC-V Family)", "count": 3}, {"cid": 31, "color": "#F28E2B", "label": "ESP-NN Code Example", "count": 15}, {"cid": 32, "color": "#E15759", "label": "ESP-WHO Code Example", "count": 3}, {"cid": 33, "color": "#76B7B2", "label": "Next.js Config", "count": 2}, {"cid": 34, "color": "#59A14F", "label": "PostCSS Config", "count": 2}, {"cid": 35, "color": "#EDC948", "label": "TEE and Permission Control", "count": 5}, {"cid": 36, "color": "#B07AA1", "label": "ESP-ADF Code Example", "count": 3}, {"cid": 37, "color": "#FF9DA7", "label": "ESP-DSP Code Example", "count": 2}, {"cid": 38, "color": "#9C755F", "label": "ESP-IDF Code Example", "count": 2}, {"cid": 39, "color": "#BAB0AC", "label": "MicroPython Example", "count": 2}, {"cid": 40, "color": "#4E79A7", "label": "Start Config Script", "count": 1}, {"cid": 41, "color": "#F28E2B", "label": "eslint.config.mjs", "count": 5}, {"cid": 42, "color": "#E15759", "label": "page.jsx", "count": 4}, {"cid": 43, "color": "#76B7B2", "label": "page.jsx", "count": 4}, {"cid": 44, "color": "#59A14F", "label": "ConnectionsDiagram.jsx", "count": 4}, {"cid": 45, "color": "#EDC948", "label": "page.jsx", "count": 3}, {"cid": 46, "color": "#B07AA1", "label": "page.jsx", "count": 3}, {"cid": 47, "color": "#FF9DA7", "label": "page.jsx", "count": 3}, {"cid": 48, "color": "#9C755F", "label": "Header.jsx", "count": 3}, {"cid": 49, "color": "#BAB0AC", "label": "route.js", "count": 2}, {"cid": 50, "color": "#4E79A7", "label": "page.jsx", "count": 2}, {"cid": 51, "color": "#F28E2B", "label": "page.jsx", "count": 2}, {"cid": 52, "color": "#E15759", "label": "page.jsx", "count": 2}, {"cid": 53, "color": "#76B7B2", "label": "page.jsx", "count": 2}, {"cid": 54, "color": "#59A14F", "label": "CLAUDE.md", "count": 2}, {"cid": 55, "color": "#EDC948", "label": "BoardCard.jsx", "count": 2}, {"cid": 56, "color": "#B07AA1", "label": "CodeExample.jsx", "count": 2}, {"cid": 57, "color": "#FF9DA7", "label": "Footer.jsx", "count": 2}, {"cid": 58, "color": "#9C755F", "label": "Providers.jsx", "count": 2}, {"cid": 59, "color": "#BAB0AC", "label": "SeriesTabMenu.jsx", "count": 2}, {"cid": 60, "color": "#4E79A7", "label": "Crypto Accelerators (AES, SHA, RSA, ECC, HMAC, RNG)", "count": 2}, {"cid": 61, "color": "#F28E2B", "label": "API do Marketplace (app/api/placas/route.js)", "count": 1}, {"cid": 62, "color": "#E15759", "label": "Compara\u00e7\u00e3o de S\u00e9ries", "count": 1}, Line truncated
// HTML-escape helper — prevents XSS when injecting graph data into innerHTML
function esc(s) {
return String(s).replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;').replace(/'/g,'&#39;');
}
// Build vis datasets
const nodesDS = new vis.DataSet(RAW_NODES.map(n => ({
id: n.id, label: n.label, color: n.color, size: n.size,
font: n.font, title: n.title,
_community: n.community, _community_name: n.community_name,
_source_file: n.source_file, _file_type: n.file_type, _degree: n.degree,
})));
const edgesDS = new vis.DataSet(RAW_EDGES.map((e, i) => ({
id: i, from: e.from, to: e.to,
label: '',
title: e.title,
dashes: e.dashes,
width: e.width,
color: e.color,
arrows: { to: { enabled: true, scaleFactor: 0.5 } },
})));
const container = document.getElementById('graph');
const network = new vis.Network(container, { nodes: nodesDS, edges: edgesDS }, {
physics: {
enabled: true,
solver: 'forceAtlas2Based',
forceAtlas2Based: {
gravitationalConstant: -60,
centralGravity: 0.005,
springLength: 120,
springConstant: 0.08,
damping: 0.4,
avoidOverlap: 0.8,
},
stabilization: { iterations: 200, fit: true },
},
interaction: {
hover: true,
tooltipDelay: 100,
hideEdgesOnDrag: true,
navigationButtons: false,
keyboard: false,
},
nodes: { shape: 'dot', borderWidth: 1.5 },
edges: { smooth: { type: 'continuous', roundness: 0.2 }, selectionWidth: 3 },
});
network.once('stabilizationIterationsDone', () => {
network.setOptions({ physics: { enabled: false } });
});
function showInfo(nodeId) {
const n = nodesDS.get(nodeId);
if (!n) return;
const neighborIds = network.getConnectedNodes(nodeId);
const neighborItems = neighborIds.map(nid => {
const nb = nodesDS.get(nid);
const color = nb ? nb.color.background : '#555';
return `<span class="neighbor-link" style="border-left-color:${esc(color)}" data-nid="${esc(nid)}">${esc(nb ? nb.label : nid)}</span>`;
}).join('');
document.getElementById('info-content').innerHTML = `
<div class="field"><b>${esc(n.label)}</b></div>
<div class="field">Type: ${esc(n._file_type || 'unknown')}</div>
<div class="field">Community: ${esc(n._community_name)}</div>
<div class="field">Source: ${esc(n._source_file || '-')}</div>
<div class="field">Degree: ${n._degree}</div>
${neighborIds.length ? `<div class="field" style="margin-top:8px;color:#aaa;font-size:11px">Neighbors (${neighborIds.length})</div><div id="neighbors-list">${neighborItems}</div>` : ''}
`;
}
function focusNode(nodeId) {
network.focus(nodeId, { scale: 1.4, animation: true });
network.selectNodes([nodeId]);
showInfo(nodeId);
}
// Neighbor links use a data attribute + one delegated listener rather than an
// inline onclick. A node id/label sourced from a document or a scraped URL
// (graphify add) can contain a double-quote; dropping the stringified id
// unescaped into a quoted onclick both broke every link and allowed a hostile
// source to inject an event handler into the local report (stored XSS, #1838).
// esc() on data-nid keeps the value inside the attribute; the listener reads it
// back verbatim. Bound to document so it survives the innerHTML rebuild that
// recreates #neighbors-list on each showInfo().
document.addEventListener('click', e => {
const el = e.target.closest('.neighbor-link');
if (el && el.dataset.nid !== undefined) focusNode(el.dataset.nid);
});
// Track hovered node — hover detection is more reliable than click params
let hoveredNodeId = null;
network.on('hoverNode', params => {
hoveredNodeId = params.node;
container.style.cursor = 'pointer';
});
network.on('blurNode', () => {
hoveredNodeId = null;
container.style.cursor = 'default';
});
container.addEventListener('click', () => {
if (hoveredNodeId !== null) {
showInfo(hoveredNodeId);
network.selectNodes([hoveredNodeId]);
}
});
network.on('click', params => {
if (params.nodes.length > 0) {
showInfo(params.nodes[0]);
} else if (hoveredNodeId === null) {
document.getElementById('info-content').innerHTML = '<span class="empty">Click a node to inspect it</span>';
}
});
const searchInput = document.getElementById('search');
const searchResults = document.getElementById('search-results');
searchInput.addEventListener('input', () => {
const q = searchInput.value.toLowerCase().trim();
searchResults.innerHTML = '';
if (!q) { searchResults.style.display = 'none'; return; }
const matches = RAW_NODES.filter(n => n.label.toLowerCase().includes(q)).slice(0, 20);
if (!matches.length) { searchResults.style.display = 'none'; return; }
searchResults.style.display = 'block';
matches.forEach(n => {
const el = document.createElement('div');
el.className = 'search-item';
el.textContent = n.label;
el.style.borderLeft = `3px solid ${n.color.background}`;
el.style.paddingLeft = '8px';
el.onclick = () => {
network.focus(n.id, { scale: 1.5, animation: true });
network.selectNodes([n.id]);
showInfo(n.id);
searchResults.style.display = 'none';
searchInput.value = '';
};
searchResults.appendChild(el);
});
});
document.addEventListener('click', e => {
if (!searchResults.contains(e.target) && e.target !== searchInput)
searchResults.style.display = 'none';
});
const hiddenCommunities = new Set();
const selectAllCb = document.getElementById('select-all-cb');
function updateSelectAllState() {
const total = LEGEND.length;
const hidden = hiddenCommunities.size;
selectAllCb.checked = hidden === 0;
selectAllCb.indeterminate = hidden > 0 && hidden < total;
}
function toggleAllCommunities(hide) {
document.querySelectorAll('.legend-item').forEach(item => {
hide ? item.classList.add('dimmed') : item.classList.remove('dimmed');
});
document.querySelectorAll('.legend-cb').forEach(cb => {
cb.checked = !hide;
});
LEGEND.forEach(c => {
if (hide) hiddenCommunities.add(c.cid); else hiddenCommunities.delete(c.cid);
});
const updates = RAW_NODES.map(n => ({ id: n.id, hidden: hide }));
nodesDS.update(updates);
updateSelectAllState();
}
const legendEl = document.getElementById('legend');
LEGEND.forEach(c => {
const item = document.createElement('div');
item.className = 'legend-item';
const cb = document.createElement('input');
cb.type = 'checkbox';
cb.className = 'legend-cb';
cb.checked = true;
cb.addEventListener('change', (e) => {
e.stopPropagation();
if (cb.checked) {
hiddenCommunities.delete(c.cid);
item.classList.remove('dimmed');
} else {
hiddenCommunities.add(c.cid);
item.classList.add('dimmed');
}
const updates = RAW_NODES
.filter(n => n.community === c.cid)
.map(n => ({ id: n.id, hidden: !cb.checked }));
nodesDS.update(updates);
updateSelectAllState();
});
item.innerHTML = `<div class="legend-dot" style="background:${c.color}"></div>
<span class="legend-label">${c.label}</span>
<span class="legend-count">${c.count}</span>`;
item.prepend(cb);
item.onclick = (e) => {
if (e.target === cb) return;
cb.checked = !cb.checked;
cb.dispatchEvent(new Event('change'));
};
legendEl.appendChild(item);
});
</script>
<script>
// Render hyperedges as shaded regions
const hyperedges = [{"id": "espdocs_frontend_stack", "label": "Stack frontend do ESPDocs", "nodes": ["readme_nextjs_app_router", "readme_react19", "readme_tailwind_css", "readme_material_ui"], "relation": "form", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "README.md"}, {"id": "marketplace_data_flow", "label": "Fluxo de dados do Marketplace de Placas", "nodes": ["readme_marketplace_placas", "readme_api_placas_route", "readme_google_sheets_api", "readme_google_sheets_api_key"], "relation": "participate_in", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "README.md"}, {"id": "espdocs_content_pillars", "label": "Pilares de conte\u00fado do ESPDocs", "nodes": ["readme_series_esp32", "readme_frameworks", "readme_comparacao", "readme_diagramas_interativos", "readme_exemplos_codigo", "readme_marketplace_placas"], "relation": "form", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "README.md"}, {"id": "esp8684_security_subsystem", "label": "ESP8684 Security Subsystem", "nodes": ["public_datasheets_esp32_c2__esp8684__secure_boot", "public_datasheets_esp32_c2__esp8684__flash_encryption", "public_datasheets_esp32_c2__esp8684__ecc_accelerator", "public_datasheets_esp32_c2__esp8684__sha_accelerator", "public_datasheets_esp32_c2__esp8684__rng"], "relation": "form", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/datasheets/ESP32-C2 (ESP8684).pdf"}, {"id": "esp32_c3_security_subsystem", "label": "ESP32-C3 Security Subsystem", "nodes": ["public_datasheets_esp32_c3_aes_accelerator", "public_datasheets_esp32_c3_sha_accelerator", "public_datasheets_esp32_c3_rsa_accelerator", "public_datasheets_esp32_c3_hmac_digital_signature", "public_datasheets_esp32_c3_secure_boot", "public_datasheets_esp32_c3_flash_encryption", "public_datasheets_esp32_c3_rng"], "relation": "form", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/datasheets/ESP32-C3.pdf"}, {"id": "esp32_c5_multiprotocol_radio_stack", "label": "ESP32-C5 Multiprotocol Radio Stack", "nodes": ["public_datasheets_esp32_c5_wi_fi_6_dual_band", "public_datasheets_esp32_c5_bluetooth_le_5", "public_datasheets_esp32_c5_ieee_802_15_4", "public_datasheets_esp32_c5_thread_1_4", "public_datasheets_esp32_c5_zigbee_3_0", "public_datasheets_esp32_c5_rf_module"], "relation": "participate_in", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/datasheets/ESP32-C5.pdf"}, {"id": "esp32_c6_multi_protocol_radio", "label": "ESP32-C6 coexisting multi-protocol radio stack sharing one antenna", "nodes": ["public_datasheets_esp32_c6_wi_fi_6", "public_datasheets_esp32_c6_bluetooth_le_5_3", "public_datasheets_esp32_c6_ieee_802_15_4", "public_datasheets_esp32_c6_rf_module"], "relation": "participate_in", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/datasheets/ESP32-C6.pdf"}, {"id": "esp32_c61_security_subsystem", "label": "ESP32-C61 security subsystem", "nodes": ["public_datasheets_esp32_c61_secure_boot", "public_datasheets_esp32_c61_flash_psram_encryption", "public_datasheets_esp32_c61_ecdsa", "public_datasheets_esp32_c61_trng", "public_datasheets_esp32_c61_apm", "public_datasheets_esp32_c61_power_glitch_detector"], "relation": "form", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/datasheets/ESP32-C61.pdf"}, {"id": "esp32_h2_802154_application_protocols", "label": "ESP32-H2 802.15.4 application-layer protocols", "nodes": ["public_datasheets_esp32_h2_ieee_802_15_4", "public_datasheets_esp32_h2_thread", "public_datasheets_esp32_h2_zigbee_3_0", "public_datasheets_esp32_h2_matter"], "relation": "form", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/datasheets/ESP32-H2.pdf"}, {"id": "esp32_p4_image_voice_pipeline", "label": "ESP32-P4 Image and Voice Processing Pipeline", "nodes": ["public_datasheets_esp32_p4_isp", "public_datasheets_esp32_p4_jpeg_codec", "public_datasheets_esp32_p4_ppa", "public_datasheets_esp32_p4_h264_encoder", "public_datasheets_esp32_p4_mipi_csi", "public_datasheets_esp32_p4_mipi_dsi", "public_datasheets_esp32_p4_vad"], "relation": "participate_in", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/datasheets/ESP32-P4.pdf"}, {"id": "esp32_s3_wireless_stack", "label": "ESP32-S3 Wireless Subsystem (Wi-Fi + BLE + RF)", "nodes": ["public_datasheets_esp32_s3_wifi", "public_datasheets_esp32_s3_wifi_mac_baseband", "public_datasheets_esp32_s3_bluetooth_le", "public_datasheets_esp32_s3_ble_baseband", "public_datasheets_esp32_s3_rf_module"], "relation": "form", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "public/datasheets/ESP32-S3.pdf"}, {"id": "espressif_security_feature_family", "label": "Common Espressif Security Feature Family", "nodes": ["public_datasheets_esp32_p4_secure_boot", "public_datasheets_esp32_s2_secure_boot", "public_datasheets_esp32_s3_secure_boot", "public_datasheets_esp32_s2_flash_encryption", "public_datashLine truncated
// afterDrawing passes ctx already transformed to network coordinate space.
// Draw node positions raw — no manual pan/zoom/DPR math needed.
network.on('afterDrawing', function(ctx) {
hyperedges.forEach(h => {
const positions = h.nodes
.map(nid => network.getPositions([nid])[nid])
.filter(p => p !== undefined);
if (positions.length < 2) return;
ctx.save();
ctx.globalAlpha = 0.12;
ctx.fillStyle = '#6366f1';
ctx.strokeStyle = '#6366f1';
ctx.lineWidth = 2;
ctx.beginPath();
// Centroid and expanded hull in network coordinates
const cx = positions.reduce((s, p) => s + p.x, 0) / positions.length;
const cy = positions.reduce((s, p) => s + p.y, 0) / positions.length;
const expanded = positions.map(p => ({
x: cx + (p.x - cx) * 1.15,
y: cy + (p.y - cy) * 1.15
}));
ctx.moveTo(expanded[0].x, expanded[0].y);
expanded.slice(1).forEach(p => ctx.lineTo(p.x, p.y));
ctx.closePath();
ctx.fill();
ctx.globalAlpha = 0.4;
ctx.stroke();
// Label
ctx.globalAlpha = 0.8;
ctx.fillStyle = '#4f46e5';
ctx.font = 'bold 11px sans-serif';
ctx.textAlign = 'center';
ctx.fillText(h.label, cx, cy - 5);
ctx.restore();
});
});
</script>
</body>
</html>
File diff suppressed because it is too large. Load diff
-357
View File
@@ -1,357 +0,0 @@
{
"app/api/placas/route.js": {
"mtime": 1787208875.1094453,
"ast_hash": "292fa5aae92458ae0098d7fa41ccba72",
"semantic_hash": "292fa5aae92458ae0098d7fa41ccba72"
},
"app/catalogo/page.jsx": {
"mtime": 1787208875.1094453,
"ast_hash": "72a4c176cf850cde1d4fe4f3ee49d73b",
"semantic_hash": "72a4c176cf850cde1d4fe4f3ee49d73b"
},
"app/comparacao/page.jsx": {
"mtime": 1787209888.7305403,
"ast_hash": "aa9617df231d5a6fc0527724b0e86556",
"semantic_hash": ""
},
"app/frameworks/[key]/page.jsx": {
"mtime": 1787208875.1099038,
"ast_hash": "d9de72e32c9dcf7f0c31a0bf7818eafe",
"semantic_hash": "d9de72e32c9dcf7f0c31a0bf7818eafe"
},
"app/frameworks/page.jsx": {
"mtime": 1787208875.1099038,
"ast_hash": "5e279bbcefdd13b44223a87ed99325a9",
"semantic_hash": "5e279bbcefdd13b44223a87ed99325a9"
},
"app/glossario/page.jsx": {
"mtime": 1787209506.5618405,
"ast_hash": "c95ace76cab37b50e4c68e97b3ac8dfd",
"semantic_hash": ""
},
"app/layout.jsx": {
"mtime": 1787210058.7198815,
"ast_hash": "c7030435817b6359456e6dcba240c124",
"semantic_hash": ""
},
"app/page.jsx": {
"mtime": 1787208875.1099038,
"ast_hash": "7889db722e90db47360774609726fe7e",
"semantic_hash": "7889db722e90db47360774609726fe7e"
},
"app/seletor/page.jsx": {
"mtime": 1787209494.7864916,
"ast_hash": "0a99d5819edb1258dd3916e9222547f7",
"semantic_hash": ""
},
"app/series/[key]/page.jsx": {
"mtime": 1787209888.7301764,
"ast_hash": "8179577cb5a471be4ee6cffb76c93fb4",
"semantic_hash": ""
},
"app/series/page.jsx": {
"mtime": 1787209898.9730222,
"ast_hash": "8f5ca78a40bf0fadc80b35a74a2f8256",
"semantic_hash": ""
},
"app/sobre/page.jsx": {
"mtime": 1787208875.1107314,
"ast_hash": "95b946dc86f6a01506850cafb29af245",
"semantic_hash": "95b946dc86f6a01506850cafb29af245"
},
"components/BoardCard.jsx": {
"mtime": 1787208875.1107314,
"ast_hash": "20bb2df7129ddb4610e40665d35e0123",
"semantic_hash": "20bb2df7129ddb4610e40665d35e0123"
},
"components/CodeExample.jsx": {
"mtime": 1787208875.111169,
"ast_hash": "d27b81c8e5d291bc0fbd0237d2664cfd",
"semantic_hash": "d27b81c8e5d291bc0fbd0237d2664cfd"
},
"components/ConnectionsDiagram.jsx": {
"mtime": 1787208875.111169,
"ast_hash": "6298fff16eb50a793500b068226e0f6b",
"semantic_hash": "6298fff16eb50a793500b068226e0f6b"
},
"components/Footer.jsx": {
"mtime": 1787208875.111169,
"ast_hash": "8301912e24a787f25f15c315312c1262",
"semantic_hash": "8301912e24a787f25f15c315312c1262"
},
"components/Header.jsx": {
"mtime": 1787208875.111169,
"ast_hash": "ddae6c8f48e853c7e69c1601745849d6",
"semantic_hash": "ddae6c8f48e853c7e69c1601745849d6"
},
"components/Providers.jsx": {
"mtime": 1787208875.111169,
"ast_hash": "d31db26b58629a807b7df4c4a3189772",
"semantic_hash": "d31db26b58629a807b7df4c4a3189772"
},
"components/SeriesTabMenu.jsx": {
"mtime": 1787208875.111169,
"ast_hash": "41333d2683fb6eec4e0ce3c1e7df2b45",
"semantic_hash": "41333d2683fb6eec4e0ce3c1e7df2b45"
},
"eslint.config.mjs": {
"mtime": 1787208875.111688,
"ast_hash": "cd28c192684b52caf16d8d1df068e272",
"semantic_hash": "cd28c192684b52caf16d8d1df068e272"
},
"jsconfig.json": {
"mtime": 1787208875.115688,
"ast_hash": "21306b44064ae42bbbd715b1986abaf8",
"semantic_hash": "21306b44064ae42bbbd715b1986abaf8"
},
"next.config.mjs": {
"mtime": 1787208875.115688,
"ast_hash": "21958f5752add43cc47ab0ff5172cd46",
"semantic_hash": "21958f5752add43cc47ab0ff5172cd46"
},
"package.json": {
"mtime": 1787208875.1166883,
"ast_hash": "ba7a64ba8723e44ff54603adc91751e1",
"semantic_hash": "ba7a64ba8723e44ff54603adc91751e1"
},
"postcss.config.mjs": {
"mtime": 1787208875.1166883,
"ast_hash": "675899342e765a4d16acd75a53389101",
"semantic_hash": "675899342e765a4d16acd75a53389101"
},
"public/conexoes/ESP32-C2.json": {
"mtime": 1787208875.11729,
"ast_hash": "aad3b4f175c3dd386adbf368f15073f7",
"semantic_hash": "aad3b4f175c3dd386adbf368f15073f7"
},
"public/conexoes/ESP32-C3.json": {
"mtime": 1787208875.1173952,
"ast_hash": "5deecb15a45f0291802077cd24e4051b",
"semantic_hash": "5deecb15a45f0291802077cd24e4051b"
},
"public/conexoes/ESP32-C5.json": {
"mtime": 1787208875.1173952,
"ast_hash": "949d8facf94a56f254872c185a88d2a1",
"semantic_hash": "949d8facf94a56f254872c185a88d2a1"
},
"public/conexoes/ESP32-C6.json": {
"mtime": 1787208875.1173952,
"ast_hash": "84dceb481e501b68643300982832c8c7",
"semantic_hash": "84dceb481e501b68643300982832c8c7"
},
"public/conexoes/ESP32-C61.json": {
"mtime": 1787208875.1173952,
"ast_hash": "88aa2cadabff6bbd1ba662531e904df6",
"semantic_hash": "88aa2cadabff6bbd1ba662531e904df6"
},
"public/conexoes/ESP32-H2.json": {
"mtime": 1787208875.1173952,
"ast_hash": "61e9339e808c87642b618b322de424dd",
"semantic_hash": "61e9339e808c87642b618b322de424dd"
},
"public/conexoes/ESP32-P4.json": {
"mtime": 1787208875.1173952,
"ast_hash": "aec6bfdf220455851dea0619fa3954e8",
"semantic_hash": "aec6bfdf220455851dea0619fa3954e8"
},
"public/conexoes/ESP32-S2.json": {
"mtime": 1787208875.1173952,
"ast_hash": "4b6b0c563a63a59756227ef096141cd5",
"semantic_hash": "4b6b0c563a63a59756227ef096141cd5"
},
"public/conexoes/ESP32-S3.json": {
"mtime": 1787208875.1176882,
"ast_hash": "7d877331595d2677894a926714590c04",
"semantic_hash": "7d877331595d2677894a926714590c04"
},
"public/conexoes/ESP32-S31.json": {
"mtime": 1787208875.1176882,
"ast_hash": "0f3cd4f8f2741329ea93f18227b9f2a9",
"semantic_hash": "0f3cd4f8f2741329ea93f18227b9f2a9"
},
"public/conexoes/ESP32.json": {
"mtime": 1787208875.1176882,
"ast_hash": "0d111992e8707f75177cf8ec495519f1",
"semantic_hash": "0d111992e8707f75177cf8ec495519f1"
},
"public/exemplos/esp-adf.c": {
"mtime": 1787208875.1497247,
"ast_hash": "189f598b93c1b130dedce25d07513a30",
"semantic_hash": "189f598b93c1b130dedce25d07513a30"
},
"public/exemplos/esp-dsp.c": {
"mtime": 1787208875.1497247,
"ast_hash": "f3406d15617cf415888b07d688cdaf34",
"semantic_hash": "f3406d15617cf415888b07d688cdaf34"
},
"public/exemplos/esp-idf.c": {
"mtime": 1787208875.1497247,
"ast_hash": "28d7cf987af6c5d3a54ad1fe06571e91",
"semantic_hash": "28d7cf987af6c5d3a54ad1fe06571e91"
},
"public/exemplos/esp-matter.c": {
"mtime": 1787208875.1497247,
"ast_hash": "332c82ce14230250fd828db6e22cae44",
"semantic_hash": "332c82ce14230250fd828db6e22cae44"
},
"public/exemplos/esp-nn.c": {
"mtime": 1787208875.1497247,
"ast_hash": "186d382f96347dbae8be3b13c0252ad3",
"semantic_hash": "186d382f96347dbae8be3b13c0252ad3"
},
"public/exemplos/esp-who.c": {
"mtime": 1787208875.1497247,
"ast_hash": "2abc563b2750f0a823438a3e9b1c56c1",
"semantic_hash": "2abc563b2750f0a823438a3e9b1c56c1"
},
"public/exemplos/micropython.py": {
"mtime": 1787208875.1497247,
"ast_hash": "99c3b78148eee8632bb7772db61bdfdd",
"semantic_hash": "99c3b78148eee8632bb7772db61bdfdd"
},
"public/frameworks.json": {
"mtime": 1787208875.1497247,
"ast_hash": "3595f7219f3fcfd1b8d59ea741fab869",
"semantic_hash": "3595f7219f3fcfd1b8d59ea741fab869"
},
"public/series.json": {
"mtime": 1787209869.381654,
"ast_hash": "e1817e9cd2fde1e1e95ea92c16a28779",
"semantic_hash": ""
},
"start.config.js": {
"mtime": 1787208875.1956916,
"ast_hash": "a6a5cda80ac9eea57d50f14872a739d2",
"semantic_hash": "a6a5cda80ac9eea57d50f14872a739d2"
},
"README.md": {
"mtime": 1787208875.1086879,
"ast_hash": "e1c8b99e874c6cddc035c7ac900c9bbd",
"semantic_hash": "e1c8b99e874c6cddc035c7ac900c9bbd"
},
"public/google21a790a2c23c0ec5.html": {
"mtime": 1787208875.1497247,
"ast_hash": "c8e349cbe0172dc98e26385e09d67cc3",
"semantic_hash": "c8e349cbe0172dc98e26385e09d67cc3"
},
"public/datasheets/ESP32-C2 (ESP8684).pdf": {
"mtime": 1787208875.1196883,
"ast_hash": "36e6ee1a52e7293510d60c7adfc0fbaf",
"semantic_hash": "36e6ee1a52e7293510d60c7adfc0fbaf"
},
"public/datasheets/ESP32-C3.pdf": {
"mtime": 1787208875.1226883,
"ast_hash": "25beb64276e6bc6c5d13d032e30847d9",
"semantic_hash": "25beb64276e6bc6c5d13d032e30847d9"
},
"public/datasheets/ESP32-C5.pdf": {
"mtime": 1787208875.1246884,
"ast_hash": "c1083a9504a574282a09f557e0343d48",
"semantic_hash": "c1083a9504a574282a09f557e0343d48"
},
"public/datasheets/ESP32-C6.pdf": {
"mtime": 1787208875.1286886,
"ast_hash": "66a7b580c6afff5becf9bd326bb675d4",
"semantic_hash": "66a7b580c6afff5becf9bd326bb675d4"
},
"public/datasheets/ESP32-C61.pdf": {
"mtime": 1787208875.1306887,
"ast_hash": "2f86d54475a006e9b0e41ba329560c5f",
"semantic_hash": "2f86d54475a006e9b0e41ba329560c5f"
},
"public/datasheets/ESP32-H2.pdf": {
"mtime": 1787208875.1326888,
"ast_hash": "460ea57a62c32646d12ae0088eb1a073",
"semantic_hash": "460ea57a62c32646d12ae0088eb1a073"
},
"public/datasheets/ESP32-P4.pdf": {
"mtime": 1787208875.137689,
"ast_hash": "aa3fc8de7dfa4e7d3ff40dd9e19fdb35",
"semantic_hash": "aa3fc8de7dfa4e7d3ff40dd9e19fdb35"
},
"public/datasheets/ESP32-S2.pdf": {
"mtime": 1787208875.1406891,
"ast_hash": "1e912b14670dde07253da71147ea2ded",
"semantic_hash": "1e912b14670dde07253da71147ea2ded"
},
"public/datasheets/ESP32-S3.pdf": {
"mtime": 1787208875.1436894,
"ast_hash": "cdb8a18273a761aff071e6a665867205",
"semantic_hash": "cdb8a18273a761aff071e6a665867205"
},
"public/datasheets/ESP32-S31.pdf": {
"mtime": 1787208875.1466894,
"ast_hash": "b2f7aa8b2cc16c18815abc5a1ddd566a",
"semantic_hash": "b2f7aa8b2cc16c18815abc5a1ddd566a"
},
"public/datasheets/ESP32.pdf": {
"mtime": 1787208875.1486895,
"ast_hash": "2354c04b871b3b6b294076c1fb953522",
"semantic_hash": "2354c04b871b3b6b294076c1fb953522"
},
"public/logo.png": {
"mtime": 1787208875.1497247,
"ast_hash": "1c0eae14654c8f5427c7141029ecd29e",
"semantic_hash": "1c0eae14654c8f5427c7141029ecd29e"
},
"public/placas/esp32-c2.png": {
"mtime": 1787208875.1506896,
"ast_hash": "3480aadf17ef57e93ee5afdfd934d896",
"semantic_hash": "3480aadf17ef57e93ee5afdfd934d896"
},
"public/placas/esp32-c3.png": {
"mtime": 1787208875.1516895,
"ast_hash": "85df0510a61dee5ffa581d912f5d68c9",
"semantic_hash": "85df0510a61dee5ffa581d912f5d68c9"
},
"public/placas/esp32-c5.png": {
"mtime": 1787208875.1526897,
"ast_hash": "6a59f4e23ac9ec5e319a77a6600fa343",
"semantic_hash": "6a59f4e23ac9ec5e319a77a6600fa343"
},
"public/placas/esp32-c6.png": {
"mtime": 1787208875.1536896,
"ast_hash": "0f836b438f62bb4b6237c9318346cdf2",
"semantic_hash": "0f836b438f62bb4b6237c9318346cdf2"
},
"public/placas/esp32-c61.png": {
"mtime": 1787208875.1546898,
"ast_hash": "6734034067caa41374f2a4ca5064a7d3",
"semantic_hash": "6734034067caa41374f2a4ca5064a7d3"
},
"public/placas/esp32-h2.png": {
"mtime": 1787208875.1556897,
"ast_hash": "7dceb269eb019ce826ef336dd57ab52c",
"semantic_hash": "7dceb269eb019ce826ef336dd57ab52c"
},
"public/placas/esp32-p4.png": {
"mtime": 1787208875.1626902,
"ast_hash": "c144c171692850ac257d00827dc674f5",
"semantic_hash": "c144c171692850ac257d00827dc674f5"
},
"public/placas/esp32-s2.png": {
"mtime": 1787208875.1646903,
"ast_hash": "670c4a12339f32fb32af2eebdc575892",
"semantic_hash": "670c4a12339f32fb32af2eebdc575892"
},
"public/placas/esp32-s3.png": {
"mtime": 1787208875.1686904,
"ast_hash": "52b96040d9c648f7c52aa4c8adac7e47",
"semantic_hash": "52b96040d9c648f7c52aa4c8adac7e47"
},
"public/placas/esp32-s31.png": {
"mtime": 1787208875.1926913,
"ast_hash": "5b970e68abce449015851cd5966525e3",
"semantic_hash": "5b970e68abce449015851cd5966525e3"
},
"public/placas/esp32.png": {
"mtime": 1787208875.1946914,
"ast_hash": "6791837138c1c5400db2ee07c9025627",
"semantic_hash": "6791837138c1c5400db2ee07c9025627"
},
"CLAUDE.md": {
"mtime": 1787208875.1086879,
"ast_hash": "0ea9488e278d2efd15e7c0b6e7cdca83",
"semantic_hash": "0ea9488e278d2efd15e7c0b6e7cdca83"
}
}
+153
View File
@@ -0,0 +1,153 @@
/**
* Fonte única das informações de SEO do ESPDocs.
*
* Centralizar aqui evita o problema clássico de metadata espalhado: a URL do
* site aparecendo com valores diferentes em cada arquivo, ou uma página nova
* nascendo sem título próprio.
*/
export const SITE = {
url: "https://espdocs.cienciaembarcada.com.br",
nome: "ESPDocs",
autor: "Lucas Rayan Guerra",
autorUrl: "https://lucasrguerra.dev.br",
autorLinkedin: "https://linkedin.com/in/lucasrguerra",
autorEmail: "contato@lucasrguerra.dev.br",
repositorio: "https://github.com/lucasrguerra/ESPDocs",
blog: "https://cienciaembarcada.com.br",
};
/**
* Monta o objeto `metadata` de uma página, já com canonical e Open Graph.
* Usar isto em vez de escrever o objeto à mão garante que nenhuma página fique
* sem canonical ou sem og:title.
*/
export function paginaMeta({ titulo, descricao, caminho, keywords = [], tipo = "website" }) {
const url = `${SITE.url}${caminho}`;
return {
title: titulo,
description: descricao,
keywords,
alternates: { canonical: caminho },
openGraph: {
type: tipo,
locale: "pt_BR",
url,
siteName: SITE.nome,
title: `${titulo} · ${SITE.nome}`,
description: descricao,
},
twitter: {
card: "summary_large_image",
title: `${titulo} · ${SITE.nome}`,
description: descricao,
},
};
}
/* ------------------------------------------------------------------------
Dados estruturados (JSON-LD). São eles que rendem os resultados ricos:
trilha de navegação, box de busca e reconhecimento de autoria.
------------------------------------------------------------------------ */
export const jsonLd = {
siteESociedade() {
return {
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebSite",
"@id": `${SITE.url}/#site`,
url: SITE.url,
name: SITE.nome,
inLanguage: "pt-BR",
description:
"Documentação do ecossistema ESP32 em português brasileiro: especificações, pinagem, comparação e seleção de séries.",
publisher: { "@id": `${SITE.url}/#autor` },
},
{
"@type": "Person",
"@id": `${SITE.url}/#autor`,
name: SITE.autor,
url: SITE.autorUrl,
email: SITE.autorEmail,
sameAs: [SITE.autorLinkedin, SITE.repositorio, SITE.blog],
},
],
};
},
/** Trilha de navegação: aparece acima do título no resultado de busca. */
trilha(itens) {
return {
"@context": "https://schema.org",
"@type": "BreadcrumbList",
itemListElement: itens.map((it, i) => ({
"@type": "ListItem",
position: i + 1,
name: it.nome,
item: `${SITE.url}${it.caminho}`,
})),
};
},
/** Ficha técnica de uma série, com as especificações como propriedades. */
serie(chave, serie) {
const prop = (nome, valor) =>
valor ? { "@type": "PropertyValue", name: nome, value: String(valor) } : null;
return {
"@context": "https://schema.org",
"@type": "Product",
"@id": `${SITE.url}/series/${chave}#produto`,
name: serie.nome_completo || chave,
description: serie.descricao,
category: "Microcontrolador",
brand: { "@type": "Brand", name: "Espressif Systems" },
url: `${SITE.url}/series/${chave}`,
additionalProperty: [
prop("Arquitetura", serie.arquitetura),
prop("Núcleos", serie.nucleos),
prop("Frequência máxima", serie.frequencia),
prop("SRAM", serie.memoria_sram),
prop("GPIO", serie.gpio),
prop("Wi-Fi", serie.wifi),
prop("Bluetooth", serie.bluetooth),
prop("Encapsulamento", serie.encapsulamento),
prop("ESP-IDF mínimo", serie.esp_idf_minimo),
].filter(Boolean),
};
},
/** Glossário: marca cada verbete como termo definido. */
glossario(categorias) {
return {
"@context": "https://schema.org",
"@type": "DefinedTermSet",
"@id": `${SITE.url}/glossario#glossario`,
name: "Glossário Técnico do ESP32",
inLanguage: "pt-BR",
hasDefinedTerm: categorias.flatMap((cat) =>
cat.termos.map((t) => ({
"@type": "DefinedTerm",
name: t.termo,
description: t.definicao,
inDefinedTermSet: `${SITE.url}/glossario#glossario`,
}))
),
};
},
/** Perguntas frequentes: pode render o bloco expansível no Google. */
perguntas(pares) {
return {
"@context": "https://schema.org",
"@type": "FAQPage",
mainEntity: pares.map(({ pergunta, resposta }) => ({
"@type": "Question",
name: pergunta,
acceptedAnswer: { "@type": "Answer", text: resposta },
})),
};
},
};
+9 -5
View File
@@ -38,6 +38,7 @@
<div> <div>
<strong>Lucas Rayan Guerra</strong> <strong>Lucas Rayan Guerra</strong>
Ciência Embarcada · ESPDocs Ciência Embarcada · ESPDocs
linkedin.com/in/lucasrguerra
</div> </div>
<div style="text-align:right"> <div style="text-align:right">
<strong>Material de apoio</strong> <strong>Material de apoio</strong>
@@ -1884,7 +1885,9 @@ Temperatura: 26.1 C | Umidade: 62.0 %</code></pre>
<tr> <tr>
<td class="destaque">Conteúdo e redação</td> <td class="destaque">Conteúdo e redação</td>
<td><strong>Lucas Rayan Guerra</strong><br> <td><strong>Lucas Rayan Guerra</strong><br>
Ciência Embarcada · <a href="https://cienciaembarcada.com.br">cienciaembarcada.com.br</a></td> Ciência Embarcada · <a href="https://cienciaembarcada.com.br">cienciaembarcada.com.br</a><br>
<a href="https://linkedin.com/in/lucasrguerra">linkedin.com/in/lucasrguerra</a><br>
<a href="mailto:contato@lucasrguerra.dev.br">contato@lucasrguerra.dev.br</a></td>
</tr> </tr>
<tr> <tr>
<td class="destaque">Dados técnicos</td> <td class="destaque">Dados técnicos</td>
@@ -1942,11 +1945,12 @@ Temperatura: 26.1 C | Umidade: 62.0 %</code></pre>
</div> </div>
<div class="caixa dica"> <div class="caixa dica">
<div class="caixa-titulo">Encontrou um erro?</div> <div class="caixa-titulo">Dúvidas, correções e contato</div>
<p> <p>
Correções e sugestões são bem-vindas e ajudam as próximas turmas. Reporte pelo ESPDocs, Correções e sugestões são bem-vindas e ajudam as próximas turmas. Fale direto com o
em <a href="https://espdocs.cienciaembarcada.com.br/">espdocs.cienciaembarcada.com.br</a>, autor por <a href="mailto:contato@lucasrguerra.dev.br">contato@lucasrguerra.dev.br</a>
ou fale com a coordenação da LASER. ou pelo LinkedIn, em
<a href="https://linkedin.com/in/lucasrguerra">linkedin.com/in/lucasrguerra</a>.
</p> </p>
</div> </div>
+19
View File
@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 260 64" role="img" aria-label="ESPDocs">
<title>ESPDocs</title>
<defs>
<linearGradient id="gl" x1="6" y1="58" x2="250" y2="6" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#3b82f6"/>
<stop offset="0.55" stop-color="#8b5cf6"/>
<stop offset="1" stop-color="#ec4899"/>
</linearGradient>
</defs>
<g stroke="url(#gl)" stroke-width="3.4" stroke-linecap="round">
<path d="M2 21h7"/><path d="M2 32h7"/><path d="M2 43h7"/>
</g>
<rect x="9.25" y="9.25" width="45.5" height="45.5" rx="13" fill="none" stroke="url(#gl)" stroke-width="4.5"/>
<g stroke="url(#gl)" stroke-width="4.5" stroke-linecap="round">
<path d="M19 21h26"/><path d="M19 32h21"/><path d="M19 43h15"/>
</g>
<text x="72" y="43" font-family="Outfit, Inter, system-ui, sans-serif" font-size="34"
font-weight="800" letter-spacing="-0.5" fill="url(#gl)">ESPDocs</text>
</svg>

After

Width:  |  Height:  |  Size: 954 B

+29
View File
@@ -0,0 +1,29 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="ESPDocs">
<title>ESPDocs</title>
<defs>
<linearGradient id="g" x1="6" y1="58" x2="58" y2="6" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#3b82f6"/>
<stop offset="0.55" stop-color="#8b5cf6"/>
<stop offset="1" stop-color="#ec4899"/>
</linearGradient>
</defs>
<!-- Pinos entrando pela esquerda: o sinal que chega do silício. -->
<g stroke="url(#g)" stroke-width="3.4" stroke-linecap="round">
<path d="M2 21h7"/>
<path d="M2 32h7"/>
<path d="M2 43h7"/>
</g>
<!-- Corpo do encapsulamento. -->
<rect x="9.25" y="9.25" width="45.5" height="45.5" rx="13"
fill="none" stroke="url(#g)" stroke-width="4.5"/>
<!-- Os mesmos três níveis viram linhas de texto: a documentação.
Comprimento decrescente para ler como parágrafo. -->
<g stroke="url(#g)" stroke-width="4.5" stroke-linecap="round">
<path d="M19 21h26"/>
<path d="M19 32h21"/>
<path d="M19 43h15"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB