ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Basil Zboun Course
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Your personal Palestinian Arabic learning app — a PWA you can install on Android and use on your laptop, wired to your 2,142-entry notebook vocabulary.README 전문 보기 ↗Your personal Palestinian Arabic learning app — a PWA you can install on Android and use on your laptop, wired to your 2,142-entry notebook vocabulary.
What's inside:
| Service | What you need | Where |
|---|---|---|
| Supabase | Project URL + anon key + service role key | https://supabase.com — free tier |
| Anthropic | API key (starts with sk-ant-…) | https://console.anthropic.com |
| OpenAI | API key (starts with sk-…) — for Whisper STT | https://platform.openai.com |
| ElevenLabs | API key + voice ID — for TTS | https://elevenlabs.io — free tier gives 10k chars/mo |
cd arab-made-easy
npm install
Requires Node 20+.
cp .env.local.example .env.local
# open .env.local and fill in the keys
The default voice ID (pMsXgVXv3BLzUgSXRplE) is ElevenLabs' Jordanian Arabic voice (Rachel). To swap in a Bethlehem-cloned voice later, just change ELEVENLABS_VOICE_ID.
supabase/schema.sql from this repo → copy the whole fileYou should see tables entries, topics, grammar_rules, notebook_pages, reviews, scans, conversations created, with 15 seed topics.
npm run import-vocab
This reads data/arabic_vocabulary.xlsx (already included), pushes all 2,142 entries into Supabase with topics auto-tagged based on notebook page ranges, seeds the grammar rules, and registers all 47 scanned pages.
npm run dev
vercel deploy — it walks you through it)"Import failed with RLS error" — the schema.sql opens up permissive policies, but make sure you're using the service role key (not anon) in SUPABASE_SERVICE_ROLE_KEY.
"Voice chat gets no response" — check API keys for OpenAI (Whisper) and ElevenLabs. The Anthropic key powers the chat brain.
"Scan returns nothing" — Claude Vision requires the image to be reasonably clear. Try in good light. The API returns the raw model output if parsing fails.
"The Arabic looks wrong direction" — the .arabic CSS class handles RTL. If a component isn't showing it, add className="arabic" to the element.
ELEVENLABS_VOICE_ID in .env.localThat's it — the voice chat now speaks in Bethlehem.
arab-made-easy/
├── app/
│ ├── page.tsx # Home / tile grid
│ ├── catalog/ # Vocabulary browser
│ ├── grammar/ # Grammar rules
│ ├── flashcards/ # SRS practice
│ ├── match/ # Matching game
│ ├── scan/ # Camera + AI extraction
│ ├── voice/ # Voice chat
│ ├── pages-viewer/ # Original scans
│ └── api/
│ ├── scan/route.ts # Claude Vision OCR
│ ├── stt/route.ts # Whisper STT
│ ├── chat/route.ts # Claude chat (Palestinian)
│ └── tts/route.ts # ElevenLabs TTS
├── lib/
│ ├── supabase.ts # DB client
│ ├── srs.ts # SM-2 spaced repetition
│ ├── grammar-content.ts # ← Edit here to add/change grammar rules
│ └── utils.ts
├── scripts/
│ └── import-vocab.ts # Excel → Supabase
├── supabase/
│ └── schema.sql # Paste into Supabase SQL editor
├── public/
│ ├── notebook-pages/ # 47 scan images
│ └── manifest.json # PWA manifest
└── data/
└── arabic_vocabulary.xlsx # Source of truth for vocab
public/icon-*.png are placeholders you'll want to replace)Enjoy! 🇵🇸