ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證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! 🇵🇸