ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗An equipment catalogue and AI assistant for a makerspace. Students find a machine, read how to use it, and ask an assistant that answers from the lab's own inventory and manuals, citing the page. Staff keep the inventory, work maintenance tickets and add new equipment in the same app. Everything is also served over MCP, so people can use the lab from Claude, ChatGPT or any other AI client.
Live at the Cornell Tech MakerLAB: https://www.makerlabai.app ·
Run it for your own lab: docs/fork.md
MakerLAB Tools was built for, and runs at, the Cornell Tech MakerLAB, the fabrication lab on Cornell's New York City campus. It catalogues the lab's ~100 machines (laser cutters, 3D printers, CNC routers, electronics benches and hand tools), searches about 50 of their manuals, and is what students reach when they scan the QR label on a machine.
The software is not tied to Cornell. Everything specific to the lab (names, logos, photos, the floor plan, the sign-in domain) lives in data and environment variables, so another makerspace can fork it and run its own copy. With no configuration at all it starts on demo data.
Paper. The system was presented as a demo at the International Symposium on
Academic Makerspaces (ISAM 2026), Houston: MakerLAB AI: Tools to Operate, Fix, and
Build in Makerspaces (Steinberg, Parikh and Ramirez Peraza). The abstract, figures and
PDF are in docs/isam-2026-demo/.
| Catalogue. Fuzzy search and facets (status, category, material, location) across every machine. | The assistant. Opened on a tool page, it answers from that machine's manuals and cites the pages. |
| Reporting a problem. It troubleshoots first, then files a ticket against the right machine. | Floor map. Where each machine is, zone by zone. |
| Intake. Staff add equipment from a name, a link or a photo; research agents draft the record for approval. | Maintenance. Staff work the ticket queue; changes the assistant proposes wait for Confirm. |
| Kiosk. A lab status board for the TV at the door, with a QR code to the assistant. | MCP. Connect Claude, ChatGPT or Codex to the lab's catalogue. |
More, with a walkthrough video, on the product page: https://www.makerlabai.app/product.
/admin holds the inventory editor, maintenance, corrections and proposal
queues, project moderation, user roles and an optional one-way mirror into Notion.
Anything the assistant or a student creates starts unpublished./api/mcp:
read-only without an account, or acting as yourself after signing in.
See docs/mcp.md.next-intl; branding,
colours, institution and assistant name come from environment variables.git clone https://github.com/philosophercode/makerlab-tools.git
cd makerlab-tools
npm install # Node 24 (.nvmrc)
npm run dev # http://localhost:3000
It runs with no configuration. With DATABASE_URL unset the app uses an in-process
Postgres (PGlite) seeded with demo tools, shows a demo data banner, and stores
uploads in .blob-data/. Add AI_GATEWAY_API_KEY to .env.local to turn the assistant
on. .env.example documents every variable, and
docs/fork.md walks through rebranding and hosting your own copy.
| Feature | Needs |
|---|---|
| Tool pages, search, facets, QR labels, twelve languages, kiosk | Nothing; works on the demo data |
| The assistant, answering from your manuals with page citations | AI_GATEWAY_API_KEY |
| Adding equipment from a list, a link or a photo | The assistant's key |
| Maintenance tickets and staff email | Sign-in; email needs Resend |
MCP for Claude, ChatGPT and Codex (docs/mcp.md) | Nothing for public reads; sign-in to act |
A floor map of your lab (docs/map.md) | A plan image, traced with the prompt in the guide |
npm run dev # dev server
npm run build # db:migrate, then next build
npm run lint # eslint
npm run typecheck # tsc --noEmit
npm test # vitest: unit + integration + component
npm run test:e2e # playwright (once: npx playwright install chromium)
npm run test:all # all of the above; must pass before a merge
npm run eval:all # agent evals; real, paid model calls, never in CI
The test suite needs no credentials and makes no network calls.
Working against a persistent local database is covered in docs/deploy.md.
Next.js 16 (App Router, React Server Components), React 19, TypeScript, Tailwind CSS 4 with shadcn/ui. Postgres (Neon) through Drizzle ORM, with pgvector for manual search; Vercel Blob for files. Better Auth with Google sign-in. Models through the Vercel AI Gateway via the AI SDK; background jobs on the Workflow SDK. Vitest, React Testing Library, MSW and Playwright. Hosted on Vercel.
flowchart LR
subgraph People
S[Students and visitors]
T[Staff]
A[Claude, ChatGPT, Codex…]
end
S --> P[Pages: tools, map, kiosk]
S --> C["/api/chat"]
T --> AD["/admin: server actions"]
A --> M["/api/mcp"]
C --> R[Capability registry<br/>src/lib/capabilities]
M --> R
R --> AL[Action layer<br/>src/lib/actions]
AD --> AL
R --> G[Vercel AI Gateway] --> LLM[Models]
P --> CAT[Cached catalogue<br/>src/lib/catalog.ts]
R --> CAT
CAT --> DB[(Postgres + pgvector<br/>PGlite locally)]
AL --> DB
W[Workflows: research, manuals,<br/>photos, mirror] --> DB
W --> B[(Vercel Blob)]
AD --> W
Manuals are stored as text, split into passages, embedded and reranked, so an answer
names the page it came from. Everything a model writes about the catalogue is a draft or
a proposal a person approves. docs/architecture-guide.md
explains each decision.
| Document | For |
|---|---|
docs/fork.md | Forking it for your lab. What to rebrand and replace, then where to host it. |
docs/deploy.md | Local setup stages, then a Vercel deployment step by step. |
docs/handover.md | Running it: accounts, routine tasks, backups, what to do when it breaks. |
docs/architecture-guide.md | How it works. Start here if you are inheriting the code. |
docs/assistant.md | What the assistant can do, by role. |
docs/mcp.md | Connecting Claude, ChatGPT, Codex and other MCP clients. |
docs/map.md | Your lab's floor map, traced from a plan image. |
docs/operations.md | Monitoring, backups and restore. |
docs/testing.md | Test suite runbook. |
| , |
.github/CONTRIBUTING.md has the setup and the checklist.
Every feature starts with a spec that merges before the implementation
(docs/constitution.md, Article 1), and npm run test:all must
pass before any merge. Outside contributors sign the
Contributor License Agreement once. Report security problems
privately, as .github/SECURITY.md describes.
Built by Isaac Steinberg for the Cornell Tech MakerLAB, which Niti Parikh (Director)
and Luis Rodrigo Navarro (Assistant Director) run. Thanks to Miguel Ramirez Peraza, who
built the first inventory search that started it. An older Airtable-backed version is
preserved at the git tag
v4-final.
GNU Affero General Public License v3.0 (AGPL-3.0-only). You may use, change
and host it for any purpose; if you let others use a changed version over a network, you
must offer them its source. Names, logos and photos are not covered.
docs/legal/LICENSING.md explains it in plain language.
Copyright (C) 2026 Isaac Steinberg.
docs/constitution.md| The rules every change respects, and the design specs. |
AGENTS.md, docs/architecture/ | Conventions and the app area by area, for people and AI assistants alike. |