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/.