“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。
md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。
要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。
在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。
要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。
工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。
写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。
适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。
你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。
全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。
这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。
不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。
产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。
如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。
Open Battery Information:用开源工具解锁被锁死的电池管理系统
本文介绍一个开源项目,它通过 Arduino 硬件和 Web 工具,帮助用户读取、诊断甚至修复因故障被锁定的电池管理系统(BMS),从而避免浪费可修复的电池。
背景:BMS 锁死 —— 安全机制与维修困境
现代电池(尤其是锂电池)内部都有一块电池管理系统(Battery Management System, BMS)芯片。BMS 负责监控电池的电压、电流、温度,并执行充放电控制。当它检测到异常(如过充、过放、短路、温度过高)时,会触发保护机制,将电池的电子开关切断,甚至在内部标记故障状态,使得 BMS 永久锁定。
这种锁死机制本身是出于安全考虑 —— 防止损坏的电池引发火灾或爆炸。但从维修角度看,它带来了严重问题:
- 误触发:保护逻辑可能偶尔误判(比如电压瞬态波动),导致电池被无辜锁定。
- 瞬时故障:真正的问题(如低温保护)可能只是临时的,待环境恢复后,电池本身并没有损坏,但 BMS 仍停留在故障状态。
- 可修复故障:有些故障(如个别电芯压差过大)实际上可以更换电芯或重新均衡来修复,但锁死的 BMS 会阻止一切后续操作。
后果是:一块完好的电芯组,仅仅因为 BMS 的软件状态,就被整体判死,被扔进垃圾桶 —— 这不仅浪费钱,还增加了电子垃圾和资源浪费。
Open Battery Information 项目简介
Open Battery Information(OBI)是为解决上述问题而生的开源项目,目前已获 1.7k Star。其核心使命是:提供必要的工具和信息,帮助用户绕过或重置 BMS 的锁定状态,从而挽救本可继续使用的电池。
项目包含两个主要部分:
- Arduino 固件(位于
ArduinoOBI/目录),烧录到廉价的开发板上(如 Arduino Uno 或 ESP32-C3),用于与电池 BMS 进行底层通信。 - Web 端 UI(OBI-1 工具),托管在 GitHub Pages 上,通过浏览器的 Web Serial API 与开发板通信,并提供一个友好的用户界面。
需要注意的是,早期基于 Python/Tkinter 的桌面应用已被弃用,不再维护。如果你仍需要使用旧版 Python 程序,可以找到 v0.2.3 标签下的代码。但推荐使用全新的 Web UI —— 它免去了 Python 环境的配置,直接用浏览器就能完成刷固件、读取电池等操作。
为什么需要硬件?BMS 通信协议是专有的
各品牌电池的 BMS 芯片通常采用自定义协议(如 I2C、SMBus 或单线协议),且通信命令、寄存器地址等细节往往不公开。要读取或重置 BMS,必须与它建立物理连接并发送特定的命令序列。
Arduino(或 ESP32-C3)在这里充当一个 协议翻译器:它通过引脚与 BMS 的通信线(如 SMBus 的 SMBC、SMBD)相连,将 Web UI 发来的高级指令翻译为底层时序信号,再将 BMS 的响应反馈给上位机。由于不同电池的 BMS 芯片和协议不同,项目可能支持有限范围的电池型号,但其设计目标是提供一个通用框架,允许社区为更多 BMS 添加支持。
使用步骤:从零开始读取电池信息
第一步:搭建 Arduino 环境
- 将
ArduinoOBI文件夹复制到本地。 - 阅读该文件夹内的
README.md,那里有构建和配置的详细说明。 - 根据你的硬件购买合适的开发板:
- Arduino Uno(基于 ATmega328P)—— 较低成本,5V 逻辑电平。
- ESP32-C3 —— 内置 USB 转串口,支持 3.3V 逻辑,功能更强。
第二步:刷写固件(两种方式任选)
方式 A:浏览器直刷(推荐)
无需安装任何工具链。使用 Chrome 或 Edge 浏览器打开官方 固件烧录网页,用 USB 线连接开发板,点击烧录按钮,固件便会直接写入。这种方式特别适合不熟悉编译环境的用户。方式 B:本地编译(PlatformIO)
如果你熟悉嵌入式开发,可以安装 VS Code 和 PlatformIO 扩展,打开ArduinoOBI文件夹作为项目,然后编译并上传。这个方法更“正宗”,便于二次开发。
此外,在项目的 Releases 页面 也提供了预编译好的固件文件:uno.hex(Arduino Uno)和 esp32.bin(ESP32-C3)。你可以用其他工具(如 AVRDUDE)直接烧录,不一定非要用网页方式。
第三步:使用 OBI-1 工具读取电池
- 将刷好固件的开发板,正确连接到待检测电池的 BMS 通信接口(具体接线方式请参见 ArduinoOBI/README.md)。
- 在 Chrome/Edge 浏览器中打开 OBI-1 工具页面。
- 点击“连接设备”按钮,选择对应 Arduino 的串口(USB 虚拟串口)。
- 放入电池(或已连接好)后,点击 “读取电池” 按钮。
之后你会看到以下关键参数:
- 电池型号:帮助确认 BMS 型号和兼容性。
- 电芯电压(每节电池的电压值)—— 这是判断电芯是否均衡、是否损坏的重要依据。
- 电池温度:防止热失控风险。
- 充电次数:对于锂电池,通常可用来评估循环寿命。
- 状态标志:比如故障码、锁定状态。
这些数据不仅有助于诊断电池的“健康度”,更重要的是,你可以基于它们判断被锁定的原因。例如,如果只是某节电芯电压过低触发了保护,在充满电或均衡后,可以尝试复位 BMS 状态位,从而解锁电池。
技术亮点与设计思路
- Web Serial + 浏览器刷固件:免去安装复杂驱动和工具的负担,降低入门门槛。
- 开源硬件 + 开源固件:任何人都可以查看、修改、适配新电池。
- 安全性:该项目提醒,BMS 锁定是安全功能,用户自行操作需承担风险,切勿对损坏严重的电池强行解锁。项目可能也提供“重置”功能,但实际效果取决于 BMS 型号和故障类型。
局限与未来
- 兼容性:目前仅支持特定的 BMS 芯片或电池型号(具体请查看项目文档)。大量笔记本电池、电动工具电池可能仍未覆盖。
- 法律责任:绕过 BMS 可能导致安全保证失效,在操作电子设备时需谨慎,最好只针对自己拥有且可确认安全的电池。
- 社区支持:项目鼓励用户贡献新 BMS 的支持代码。通过大家在 GitHub 上的协作,这一项目有潜力支持更多设备。
总结
Open Battery Information 是维修爱好者的福音。它提供了一个开源、低成本(一块 Arduino 不到 10 美元)的方案,让你能够深度访问电池内部状态,打破“BMS 锁死即报废”的宿命。虽不能保证所有电池都能救活,但对于那些因误报或瞬时故障而被锁的电池,它提供了一个真正拯救它们的机会。
如果您对此项目感兴趣,可以访问其 GitHub 主页,阅读文档、下载固件、加入讨论。如果项目帮助到了您,也别忘了给作者点个 ★ Star 或 Buy Me a Coffee,支持持续开发。
原文链接:https://github.com/mnh-jansson/open-battery-information