ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
مساعد ذكي لطلبة الماجستير: إدارة التكاليف، البحث العلمي، التلخيص، والمذاكرة — بدعم كامل للعربية وتصدير بصيغ متعددة. An AI study companion for master's students: assignment planning, research, summarisation and tutoring — with first-class Arabic support and multi-format export. مجاني بالكامل. يعمل التطبيق على الطبقة المجانية من Gemini: مفتاح من Google AI Studio بلا بطاقة ائتمان، واستضافة مجانية على Vercel. لا فواتير ولا اشتراك.查看完整 README ↗
مساعد ذكي لطلبة الماجستير: إدارة التكاليف، البحث العلمي، التلخيص، والمذاكرة — بدعم كامل للعربية وتصدير بصيغ متعددة.
An AI study companion for master's students: assignment planning, research, summarisation and tutoring — with first-class Arabic support and multi-format export.
مجاني بالكامل. يعمل التطبيق على الطبقة المجانية من Gemini: مفتاح من Google AI Studio بلا بطاقة ائتمان، واستضافة مجانية على Vercel. لا فواتير ولا اشتراك.
Runs free. Gemini's free tier (no credit card) plus Vercel's free hosting. The free tier has a daily request cap and Google may use free-tier inputs to improve its models — don't paste anything confidential.
| العربية | English | |
|---|---|---|
| 🗂 | المهام والتكاليف — سجّل التكاليف ومواعيد التسليم، ودع الذكاء الاصطناعي يقسّمها إلى خطوات بخطة زمنية وتنبيهات. | Tasks — track deliverables and deadlines; AI breaks each one into scheduled steps with risk notes. |
| 🔎 | البحث العلمي — بحث في الويب مع مصادر حقيقية، أسئلة فرعية، ملاحظات منهجية، وكلمات مفتاحية للبحث في قواعد البيانات. | Research — web search with real sources, sub-questions, method notes and database keywords. |
| 📄 | التلخيص — ارفع PDF أو Word أو نصاً أو صورة، واختر: ملخص موجز/تفصيلي، قراءة نقدية، ملاحظات مذاكرة، بطاقات مراجعة، أو مخطط. | Summarise — upload PDF, Word, text or an image; choose brief/detailed summary, critical reading, study notes, flashcards or an outline. |
| 💬 | المذاكرة — مدرّس، حوار سقراطي، اختبرني، أو بسّط لي. | Study chat — tutor, Socratic, quiz-me or explain-simply modes. |
| 📚 | المكتبة — احفظ أي مخرج، وابحث فيه، وصدّره لاحقاً. | Library — save any output, search it, export it later. |
| ✍️ | إنجاز التكاليف — صِف التكليف وأرفق مصادرك لتحصل على تقرير أو مقال أو مراجعة أدبيات أو عرض تقديمي كامل. | Produce — describe the assignment, attach sources, get a finished report, essay, literature review, answers or presentation. |
| 📎 | رفع الملفات في كل قسم — PDF أو Word أو صورة أو نص، بلا حدّ للحجم. | Upload anywhere — PDF, Word, images or text attach to every AI feature, with no size limit. |
| ⤓ | تصدير — Word (.docx)، PowerPoint (.pptx)، PDF، Markdown، HTML، نص، JSON، وCSV للمهام. | Export — Word (.docx), PowerPoint (.pptx), PDF, Markdown, HTML, plain text, JSON, and CSV for tasks. |
bidi) وأسطر RTL وجداول معكوسة الاتجاه.في صفحتي البحث العلمي والمذاكرة يمكنك اختيار خبير يجيبك بمنهجية مجاله:
| الخبير | Specialist | يفيدك في | |
|---|---|---|---|
| 🔍 | محلّل الأدبيات | Research Synthesist | مراجعة الأدبيات، تدرّج قوة المصادر، وكشف الاقتباس الدائري (افتراضي في صفحة البحث) |
| 📊 | الإحصائي | Statistician | تصميم الدراسات، الاستدلال، حجم الأثر وعدم اليقين بدل الاكتفاء بـ p < 0.05 |
| 📝 | كاتب المِنَح | Grant Writer | مقترحات البحث، خطابات الاهتمام، وسرد الميزانية |
هذه الشخصيات مقتبسة من مشروع agency-agents
برخصة MIT، وتُحفظ في مجلّد agents/ (انظر agents/NOTICE.md). النصوص الكاملة تبقى على
الخادم ولا تُرسل إلى المتصفح؛ ولا يمكن لأي شخصية أن تتجاوز قواعد اللغة أو النزاهة الأكاديمية،
لأن التطبيق يعيد تأكيدها بعد نص الشخصية.
The three vendored personas come from the MIT-licensed
agency-agents project and live in agents/
(see agents/NOTICE.md for the licence and for why only three of its roster are used — most
of that repo, including its academic/ division, is written for worldbuilding and fiction,
which would misfire badly for a postgraduate student). scripts/build-experts.mjs compiles them
into a server module plus a small client metadata module, so ~12,000 words of persona text stay
on the server. A persona is appended after the app's own rules, and a precedence paragraph
after it re-asserts the language, citation and academic-integrity rules, so a vendored prompt
cannot override them.
npm install
cp .env.example .env.local # then put your key in .env.local
npm run dev # http://localhost:3000
يحتاج التطبيق إلى مفتاح مجاني من Google AI Studio — بلا بطاقة ائتمان، ويستغرق دقيقة:
GEMINI_API_KEY=AIza...
المتغيّرات الاختيارية · Optional variables:
| Variable | Default | Purpose |
|---|---|---|
GEMINI_MODEL | gemini-2.5-flash | The free-tier workhorse. gemini-2.5-pro is stronger but its free quota is much smaller. |
AI_EFFORT | high | How hard the model thinks: low (thinking off, fastest, least quota), medium, high. |
| (no upload variable) | — | There is no size cap: the browser uploads files straight to Google's Files API, so nothing large passes through the server. |
للنشر · To deploy:
npm run build && npm start
يعمل على أي منصّة تدعم Node.js (Vercel، Netlify، Railway، أو خادم خاص). أضِف GEMINI_API_KEY إلى متغيّرات البيئة هناك.
الطريقة الأسرع هي Vercel (مجاني للاستخدام الشخصي، ولا يحتاج بطاقة):
أنشئ مفتاحاً من console.anthropic.com/settings/keys وتأكّد أن حسابك فيه رصيد.
افتح vercel.com/new وسجّل الدخول بحساب GitHub.
اختر مستودع study-buddy واضغط Import.
افتح Environment Variables وأضِف:
| Name | Value |
|---|---|
GEMINI_API_KEY | AIza... |
اضغط Deploy وانتظر دقيقتين. ستحصل على رابط مثل study-buddy.vercel.app.
الفرع الافتراضي للمستودع هو claude/master-study-support-site-8g04ww، وهو ما ستنشره Vercel تلقائياً — لا حاجة لتغيير شيء.
The fastest route is Vercel (free tier, no card): create a key, open
vercel.com/new, import study-buddy, add
GEMINI_API_KEY under Environment Variables, and hit Deploy. The repo's
default branch is already the one Vercel will build.
| الإعداد | لماذا |
|---|---|
| Fluid Compute (Settings → Functions) | مُفعّل افتراضياً للمشاريع الجديدة. بدونه تتوقّف الدوال بعد ٦٠ ثانية، وقد لا يكتمل «البحث المعمّق». |
NEXT_PUBLIC_MAX_UPLOAD_MB | حجم الرفع الأقصى. الافتراضي ٤ ميغابايت لأن Vercel تحدّ جسم الطلب عند ٤٫٥ تقريباً. إن استضفت التطبيق بنفسك (Node أو Docker أو Railway) ارفعه إلى ٢٠ أو أكثر. |
AI_EFFORT | low يوقف «التفكير» فيصبح أسرع ويستهلك حصّة أقل، high (الافتراضي) لأفضل جودة. |
GEMINI_MODEL | gemini-2.5-flash (الافتراضي، حصّة مجانية سخيّة) أو gemini-2.5-pro لجودة أعلى بحصّة أصغر. |
Uploads bypass the server entirely. Vercel caps a serverless request body at
~4.5 MB, which would make a real thesis PDF impossible. Instead /api/upload
mints a resumable-upload session against the Gemini Files API with the secret
key, and the browser sends the bytes directly to Google — so there is no size
limit and the key is never exposed. Word files are converted to text in the
browser (mammoth), since the Files API does not host .docx.
Remaining platform limit. Functions are capped at maxDuration = 300
seconds; on a plan without Fluid Compute that ceiling is lower, so a "long"
deliverable or "deep" research run may be cut off — use a shorter setting there.
يعمل التطبيق على أي منصّة تشغّل Node.js. للاستضافة الذاتية:
npm ci && npm run build && npm start # PORT=3000
ضَع GEMINI_API_KEY في بيئة التشغيل، وارفع NEXT_PUBLIC_MAX_UPLOAD_MB إلى ٢٠ لأن حدّ ٤٫٥ ميغابايت خاصّ بـ Vercel وحدها.
قبل النشر، تحقّق من المفتاح في ثانيتين:
npm run check
يخبرك مباشرة: المفتاح يعمل، أو مرفوض، أو لا يوجد رصيد في الحساب.
وبعد التشغيل، تعرض الصفحة الرئيسية حالة الاتصال تلقائياً: شريط أخضر إن كان كل شيء جاهزاً، أو شريط أحمر يذكر سبب الفشل بالضبط — فلا تكتشف المشكلة وأنت في منتصف بحثك.
npm run check verifies the key against the real Gemini API before you deploy, and the
home page runs the same check itself (/api/health) on every load — green when
Gemini is reachable, red with the exact reason when it is not.
حصّة Gemini المجانية تُحسب لكل نموذج على حدة، لذا عند نفاد حصّة النموذج الأساسي ينتقل التطبيق تلقائياً إلى نموذج شقيق له حصّة مستقلة — وهذا مجاني ولا يحتاج أي مفتاح إضافي، ويحافظ على البحث في الويب ورفع الملفات.
Gemini counts its free quota per model, so when one is spent the app moves
to a sibling model that still has its own allowance. That needs no extra key and,
unlike an external provider, keeps Google Search grounding and file uploads
working. Set GEMINI_FALLBACK_MODELS to change the order.
Only once every Gemini model is spent does it reach for the providers below.
الطبقة المجانية من Gemini لها سقف يومي. يمكنك إضافة مزوّدات مجانية أخرى، فيتحوّل التطبيق إليها تلقائياً عند نفاد الحصّة — وبذلك تتضاعف قدرتك اليومية بلا تكلفة:
| المزوّد | الحصّة المجانية | المتغيّر |
|---|---|---|
| Groq | مجاني بلا بطاقة، سريع جداً | GROQ_API_KEY |
| Cerebras | مجاني بلا بطاقة | CEREBRAS_API_KEY |
| OpenRouter | نماذج بلاحقة :free | OPENROUTER_API_KEY |
| Mistral | طبقة تجريبية مجانية | MISTRAL_API_KEY |
| GitHub Models | مجاني بمفتاح GitHub، لكن الإدخال محدود بـ 8K | GITHUB_MODELS_TOKEN |
أضِف أيّاً منها في Vercel ضمن Environment Variables. الترتيب يُضبط بـ FALLBACK_ORDER.
No repository can give you extra tokens — quota is per-account with the provider, and any repo offering "free API access" is a proxy over shared or stolen keys. What actually raises your ceiling is stacking free tiers: configure any of the above and the app switches to the first working one the moment Gemini returns a quota error, which multiplies how much you get per day for free.
The fallbacks are text-only, and the app is careful about it: a request that uses Google Search grounding or reads a file uploaded to Gemini is never silently downgraded — it reports the quota error instead, because a brief without its citations or a summary that never saw the PDF would be worse than an honest failure. Requests whose attachments were read as text in the browser (Word, PowerPoint, Excel) do fall back, since that text travels fine.
Each provider also takes <ID>_MODEL to override the model and <ID>_BASE_URL
to point at a proxy or gateway.
app/
page.tsx الصفحة الرئيسية
tasks/ research/ summarize/ chat/ library/
api/
chat/ محادثة متدفقة (streaming tutor chat)
research/ بحث مع أداة web_search ومصادر
summarize/ رفع ملف أو نص → تلخيص متدفق
plan/ تقسيم مهمة → JSON منظّم (structured output)
export/docx/ توليد ملف Word من Markdown
components/ الواجهة (مزوّد اللغة، التنقّل، لوحة المخرجات، بطاقة المهمة)
lib/
claude.ts نقطة الاتصال الوحيدة بواجهة Claude
prompts.ts تعليمات النظام لكل ميزة
i18n.ts قاموس العربية/الإنجليزية
export.ts المصدّرات (Word، PDF، MD، HTML، TXT، JSON، CSV)
markdown.ts عارض Markdown آمن + تحويل إلى نص
markdown-docx.ts تحويل Markdown إلى Word مع دعم RTL
store.ts التخزين المحلي (المهام والمكتبة)
localStorage داخل متصفحك — لا حساب ولا قاعدة بيانات. استخدم «تصدير كل البيانات» في المكتبة للنسخ الاحتياطي أو النقل بين الأجهزة.التطبيق مُوجَّه ليساعدك على الفهم والتخطيط والمراجعة، لا ليكتب عنك. تعليمات النظام تمنع اختلاق المراجع والأرقام، وتطلب من النموذج أن يوضّح أن أي مسوّدة يكتبها هي مسوّدة عليك إعادة صياغتها والتحقّق منها.
Prompts are written to help you understand, plan and revise your own work. The model is instructed never to fabricate citations or statistics, and to mark any draft as something you must rewrite and verify.
/api/upload returns a resumable Gemini Files API session; the browser POSTs the file to Google directly, then passes the returned fileUri to the AI routes as a fileData part.pptxgenjs converts Markdown to .pptx — headings become slides, lists become bullets, and loose prose becomes speaker notes so a slide never turns into a wall of text.@google/genai — streaming, a configurable thinking budget, Google Search grounding for real citations on the Research page, and responseSchema JSON output for task plans.inlineData parts; .docx is converted locally with mammoth.NEXT_PUBLIC_MAX_UPLOAD_MB (4 MB by default, for Vercel's sake).The app is a native shell around the deployed site. It is not a rewrite and not an offline build: every AI feature runs through this project's own server routes — they hold the model SDKs, the provider rotation and the file relay — so there has to be a server. Loading the live site also means the app updates when the site does, with no new APK for a fix.
You do not need Android Studio or the SDK. GitHub builds it:
.apk on the phone. Android will ask you to allow
installing from this source; that is expected for an app that did not
come from Play.The workflow also runs on any push that touches android/,
capacitor.config.ts or native/.
Needs JDK 21 and the Android SDK:
npm install
npx cap sync android
cd android && ./gradlew assembleDebug
# android/app/build/outputs/apk/debug/app-debug.apk
blob: URL to the
download manager, so exports would silently fail. Inside the shell they
are written to the device and offered to the share sheet instead — see
download() in lib/export.ts.