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 ↗Find an unknown acid concentration from a titration curve, in three sessions.
openphtitration teaches how a pH curve reveals the concentration of an acid, from the pH scale to a numerical weak-acid titration solved with your own root finder, using only Python and a browser.
Target · Who is this for · Quick start · Sessions · Roadmap · Contribute · Explainer PDF
This repo is incomplete on purpose. Sessions 1 to 3 are here and fully working. The finished Target below is a preview of what the community can build next. We show you the path, not the code. Sessions 4 and up are yours.
An animated burette drips 0.1 mol/L base into a flask of diluted vinegar. The flask turns pink as the pH passes the phenolphthalein range, the measured pH points (with realistic noise) appear one by one, and below them the slope of the curve spikes at the equivalence point. The final frame reads the peak and prints the vinegar concentration, about 0.83 mol/L or 5 g per 100 mL. Your goal over the coming sessions: build the numerical engine and the analysis behind that animation.
Target: a burette titration of vinegar with a live pH curve and a derivative peak at the equivalence point
Target, final frame: the derivative peak gives the equivalence volume and the vinegar concentration
Target analysis: more dilute acids give a smaller jump; 200 noisy runs show how well the peak is located
Try it live:
How the Target was made is shown only as a path in promo/roadmap.md.
secondary school to diploma / undergraduate (levels 3-5). Topic area: Chemistry and Materials Science.
Prerequisites:
python --version works, you are ready. PRIMER.md explains the rest.New to Python? Read PRIMER.md first (10 minutes).
No installation knowledge needed. You need Git and Python 3.10+ (Windows: tick "Add Python to PATH"). On Mac and Linux type python3 wherever this page says python.
git clone https://github.com/KrunalPanchal1995/openphtitration.git
cd openphtitration
python start.py 1
start.py creates a private environment, installs what is needed and runs Session 1 with its checkpoint. Next: python start.py 2, python start.py 3, or python start.py test to check everything. Only a checkpoint: python start.py check 1.
Four lines turn the idea of Session 1 into a result (they work as they are): Save it as try.py and run it with python start.py run try.py (this uses the private environment, where NumPy is installed):
import numpy as np
x = (0.1 * 25 - 0.1 * 10) / (25 + 10) # leftover acid after 10 mL of base, mol/L
print(round(-np.log10(x), 3)) # -> 1.368 the pH of the flask
print(0.1 * 25 / 0.1, 'mL of base reach the equivalence point') # -> 25.0
Every session also opens in your browser with sliders (no install): live apps. Or use the Colab badge above for the notebook.
| # | Session | Model level | Time | Live app |
|---|---|---|---|---|
| 1 | Acids, bases and the shape of a titration curve | Level 1: conceptual interactive model | 60 min | open |
| 2 | pH, pOH and the mathematics of the strong acid - strong base curve | Level 2: mathematical engineering model | 75 min | open |
| 3 | Weak acids: buffers, the numerical curve and the noisy endpoint | Level 3: simulation and validation | 90 min | open |
Each session follows the same six steps: A real-world problem, B concept and theory, C visual explanation, D interactive simulation, E worked example and experiment, F assessment and design challenge. Each ends with checkpoint.py, which prints PASS or FAIL against reference numbers. Session 3 also contains the real-world mini-project: Find the acid in a bottle of vinegar.
flowchart LR
S1[Session 1<br/>Acids, bases and the shape of a titration curve]
S2[Session 2<br/>pH, pOH and the mathematics of the strong acid - strong base curve]
S3[Session 3<br/>Weak acids: buffers, the numerical curve and the noisy endpoint]
R[Roadmap S4+<br/>YOU build this]
T((Target))
S1 --> S2 --> S3 --> R --> T
| Folder or file | What is inside |
|---|---|
sessions/ | three sessions: README (A-F), lesson.py, notebook, live app, exercises, activity sheet, checkpoint |
promo/ | the Target: media, live links, and the roadmap (path only) |
docs/ | explainer.tex and the built explainer.pdf |
tests/ | runs every lesson and checkpoint headless |
start.py | one command to set up and run anything |
QUALITY.md, RUBRIC.md | the quality checklist and the scoring rubric |
.github/ | CI, PDF build, Pages deploy, issue and PR templates |
| Milestone | What you will build | Difficulty |
|---|---|---|
| Session 4: Fit the whole curve | A fitting routine that adjusts the concentration (and pKa) to minimise the squared pH residuals. | intermediate |
| Session 5: Identify an unknown acid by its pKa | A function that estimates pKa and the concentration from one run and names the closest acid in a small table. | intermediate |
| Session 6: A diprotic acid with two jumps | A charge-balance solver for a diprotic acid titrated with a strong base. | advanced |
| Session 7: When 25 C is not enough | A solver whose Kw is a parameter, with a neutral-pH function. | advanced |
| Session 8: Animate the titration | A GIF of at most 60 frames and 3 MB in which the burette empties, the flask colour changes and the derivative peak is marked. | advanced |
Full detail with a checkpoint per milestone: promo/roadmap.md.
New to GitHub? Read CONTRIBUTING.md; it starts from zero. Pick an issue labelled good first issue. Translations into Hindi, Telugu, Tamil and Malayalam are welcome.
python start.py test # runs every lesson and checkpoint
Lessons use # %% cell markers so they open as notebooks in VS Code. See QUALITY.md for the standard every session meets.
MIT. See LICENSE. Media in promo/media is (c) Krunal Panchal, CC BY 4.0.
Part of the PAN IIT OSS open-source teaching collection, modelled on the structure of openspline. Built on ideas from the Math Visual Studio at https://krunalpanchal1995.github.io/studio/.