一个软件工程师的 2025 电子 DIY 总结

在 2022 年和 2023 年的时候,分别写了一篇文章总结这两年玩电子 DIY 的历程(2023 年见 一个软件工程师的 2023 电子 DIY 总结),去年本来也想写一篇 2024 年电子 DIY 总结,但是拖着拖着,就没想写了。

从 2022 年重新捡起电子 DIY 的兴趣开始,到现在已经 4 年了,这中间又有了一些变化,想了想,还是再总结一下这两年玩过的电子 DIY 项目吧。

做了很多,进步不多

如果用一句话总结这两年的 DIY 过程,那就是:“做了很多,进步不多”

不管是复刻还是原创,这两年做了相当多的东西,嘉立创上 PCB 打样订单号也超过了 3 位数,但是整体感觉下来,这些项目的难度并不会比 2023 年所做的项目更高。

在 2023 了,学习了例如 USB 3.0、V3S 以及 H616 这些涉及到高速信号电路,以及需要四层甚至六层板才能满足布线需求的项目,在后面这两年,反而做得少了。

一方面因为工作导致空闲时间变少,另外一方面也是因为在对高速电路袪魅之后,不再觉得需要通过这些来挑战自己,而且因为高速电路本身面临的问题会更加多,在单一项目上可能需要花费更多精力和时间才能完成,不利于去接触更多有意思的项目 🙈。…

阅读全文 »

成了,ESP32 卫星不完全复刻指南

前段时间分享了一个国外 Maker 制造的 ESP32 卫星(见 https://mp.weixin.qq.com/s/IYBiLbzDh12QjvQngUoUtA),我也花了点时间完成了复刻,为了制作方便,也做了一些小修改,这里整理了一下需要注意的地方以及一些小技巧

铜丝有紫铜和黄铜

一开始没注意,搜索了一下直接买了个紫铜丝,做了一半才发现原来铜丝还分紫铜丝和黄铜丝,原作者使用的黄铜丝,不过既然已经做了也不管了,紫铜丝的颜色看起来也不错。

PS. 铜丝需要买 2 米。框架加内部搭桥要用掉的铜丝比想象中更多一些,加上浪费的 2 米刚好够用。

esp32-satellite-tutorial-2

esp32-satellite-tutorial-3

电铬铁,一定要好的

一开始用的电铬铁是很久之前买的一个内热式电铬铁,60W 功率,但是焊接的时候总是不上锡,每次在先给铜丝加热好久,然后锡才能到铜丝上。

后来挑了个便宜的德力西 75W T12 电铬铁,效果好多了,真的能有作者视频中那效果一碰就能上锡的效果。

加商品

先折弯再焊接

1mm 粗的铜丝还是有点硬的,建议先比划好尺寸,并且先裁剪好一个模块所有对应搭桥的铜丝,再进行焊接。

对于要连接的焊盘的部分,可以多留一点,这样在没有对齐的情况下可以重新调整,焊接时再剪掉多余的部分。

esp32-satellite-tutorial-4

太阳能其实没啥用

之前找 DeepSeek 算过,这个尺寸的太阳能电池板在室内只有 1mW 的发电功率,纯粹图一乐。因此完全没有必要添加太阳能充电模块,可以省不小焊接工作量 😃。

当然也不能直接断接太阳能电池板的正负极,我加了个 100K 电阻在正极铜丝上,然后直接连接到负极了,测试过电流只有 50uA,不会影响啥。

esp32-satellite-tutorial-5

其他模块要省也可以省

太阳能充电没有意义之后,那这个光靠一个小小的锂电池也没办法续航特别久了。如果作为一个常开的桌面摆件,还要频繁充电,不如直接插电使用。

这样的话就可以去掉不少模块了:

  • 锂电池:不需要电池了
  • 电池指示器:没必要了
  • 开关:都插电了,想断电直接断电源就行了


阅读全文 »

为了 DIY 更带劲,用 CH339 手搓一个四路电流检测、独立开关的 USB Hub,全开源~

在相当长一段时间里,玩电子 DIY 的时候我用的 USB Hub 都是之前用 CH334R 做的一个 4 位 USB 2.0 Hub(见 听人劝吃饱饭,试试CH334R来做USB 2.0 Hub),不过逐渐发现常规 USB Hub 一些不方便的地方,特别是在调试一些设备的时候,需要拔插 USB 连接,一手要按住 BOOT 按钮,一手要拔插 USB 基本上不太现实

因此就想着再做一些更符合自己需求的、更方便辅助电子 DIY 的 USB Hub。

项目介绍

为了更好地辅助电子 DIY 中的调试工作,先列举一下痛点:

  • 需要自带 UART 调试接口,这样可以省掉一个 USB 转串口工具。虽然一些 MCU 也可以通过 USB CDC 进行调试日志输出,但是在 RESET


阅读全文 »

从 Vibe Coding 到 AI Coding,借助 AI 实现效率提升

不久前,我就 AI 编程相关的内容,在团队里分享了一些在单兵作战的情况,怎么通过 AI 编程从 0 开始到落地一个中等规模项目的实操经验,来探索在现在这个时间点,如何真正去利用好 AI 进行编程相关工作。

从 Vibe Coding 到 AI Coding

Vibe Coding 这一概念是 Andrej Karpathy 在 2025 年初提出的,中文环境中通常会翻译成“氛围编程”,从字典意思来看,会有一种玩笑的味道,不是在从事一个正经严肃的工作。

但是经过近一年的发展,我觉得现在可以将它正视为 AI Coding,不再是玩具,而是一个可以在正式工作中实际提升生产力的方式

对于每一个从事编程这个行业的程序员来说,从现在开始应该在工作立即尝试、深入使用 AI 编程

集百家之长

在使用 AI 过程中,可以不局限于某个单一模型,可以充分发挥各家模型的优势,从而在产品开发过程中,每一步都得到最优的结果。

  • 例如 OpenAI ChatGPT 的 DeepResearch 相当优秀,那么就可以使用 DeepResearch 来完成整个产品前期的需求调研、竞争对手分析、产品完整功能定义等工作,从而可以在这一步获得一个优秀的产品定义需求文档。
  • 又例如 Google


阅读全文 »

AI 误诊 macOS IOKIT Bug:ESP32-S3 USB HID 通信调试记录

前段时间想模仿 BLEUnlock 搞个使用指纹给 macOS 解锁的应用,让 AI Vibe Coding 了很多代码,特别是 USB HID 通信以及 CTAP 协议处理部分。

这中间在调试协议时,AI 花了相当多的时间来反复调整 USB HID 通信时的 Payload 大小,AI 最终的结论是:macOS IOKIT 在发送数据到 USB 设备时有 Bug,会缺少 1 个字节,所以通过宏定义的方式,将包大小减少 1 个字节来绕过这个 Bug 😂。

当然我是不相信这个结论的,毕竟 macOS 上通过 USB HID 通信的设备那么多,不可能有这么明显的 Bug,周末花了点时间来看看到底是咋回事。

问题表现

在整个通信协议相关代码写完,并且主机和设备通信测试成功之后,在设备端会提示 USB HID 在收到消息时,Payload 大小为

阅读全文 »

当 AI 10 分钟能交付新人 3 天的需求,现在可能是初级开发者最危险的时候

最近我又在前端项目里高强度使用 AI 进行 Vibe Coding,几乎全程用对话驱动开发,不使用编辑器。有个直观感受:在常见前端业务里,Claude Code 等工具的产出质量≈P5~P6(≈中高级工程师的能力)

AI 不一定能独立把一条复杂业务线打通,但在可拆分的功能级任务上,速度、规范度与最佳实践覆盖度,已足以让“经验尚浅的新人”非常被动。

AI 写代码能力可能相当于 P5、P6

最近 2 个月我都在高强度使用 Claude Code 写代码(使用模型 claude-4.5-sonnet),并且是尝试完全依赖 AI 解决问题,在编码过程中,完全不使用编辑器看 AI 写的代码,都是通过对话的方式描述需求、描述 Bug。

整体感受是,AI 写代码可用、好用,特别是在前端领域。就单个功能而言,AI 可以写出相当规范并且考虑周到的代码。

一个印象深刻的案例:我需要在一个有多级列表数据的页面上,添加一个浮动的 Table of Contents 组件,只需要在 AI 对话中说一句“在右侧增加 floating toc,默认隐藏,鼠标hover时展示”AI 即可在

阅读全文 »

用 ESP32-S3 跑 BASIC 解释器,这比当年比尔盖茨用的电脑配置高多了

之前我做了个 AI 生成外形的复古小电脑,并且同样使用 AI 生成了 3D 模型,塞了 ESP32-S3 开发板 + 0.96 英寸 OLED 进去,顺手做了个能播放《Bad Apple》的固件(见《3 步从 nana banana AI 生成的复古小电脑到真实桌面小玩具》)。

esp32-s3-arduinobasic-2

最近在 GitHub 上看到一个 ArduinoBASIC 项目,一个还算完整的 BASIC 语言解释器,支持 BASIC 语言中常用的特性,这不刚好用来把这个复古小电脑变成真的可以写代码的小电脑吗 😃。

PS. 当年比尔·盖茨和保罗·艾伦为 Altair 8800 写 BASIC 时,机器 CPU 是 2 MHz 的 Intel 8080,只有 4 KB



阅读全文 »

掌握这 10 个小技巧,让 Vibe Coding 编程更高效

最近尝试全程 AI Vibe Coding 搭建一个包含前台和后台的业务系统,高强度使用了 Cursor + Claude Code 编码一个月,消耗完 Cursor 500 次快速请求,以及可能几百刀 Claude Code 的 Token。

在这过程中,99% 以上的时间都是在通过 AI prompt 进行修改(比如修改页面上的一个文案 😃),可能少于 10 次觉得描述需求太麻烦了而直接顺手改了代码。

在大概完成了一个可用的系统原型之后,踩了不少坑,也对 Vibe Coding 稍微有了一些体会。

PS. 我也是第一次高强度使用 AI 进行辅助编程,可能并没有一开始就遵循一些最佳实践,以及并没有充分利用 Cluade Code 的一些功能,例如 SubAgent、MCP 等,其中一些问题可能有更好的解决方式。

PPS. 这是一个基于 React + Nodejs,同时包含前后端的项目,所有相关经验都基于相关领域的实践得出。

1. 别让 Agent 重复启动调试服务器:控制调试流程

Agent 在调试时容易重复启动调试服务器或多个实例,这会带来端口冲突、环境状态混乱、资源浪费等问题。…

阅读全文 »

3 步从 nana banana AI 生成的复古小电脑到真实桌面小玩具

先看看有屏幕的地方就有的 Bad Apple:

PS. 音乐是后期加进去的 🙈。

源起

这一些源于之前在 MakerWorld 上看到的摸鱼小副屏,对这种可交互的小玩具特别感兴趣,我还复刻了一个,并且把内部改造了一下,换成香橙派开发板,跑了一下 Mac OS 9,虽然有点慢 😃(见:摸鱼小电脑能跑 MacOS 了,就是速度慢到怀疑人生)。

一直以来建模只会搞横平竖直简单类型的模型,对于这种带造型的模型,完全没有能力,不过最近 nana banana 很火,突然想到现在各种 AI 工具已经相当成熟了,是不是也可以借助 AI 来实现呢,说干就干。

PS. 稍微标题党了一下,这从 AI 生成到完成 3D 打印,也用到了其他平台,以及最终加装 MCU + 屏幕也花了额外的时间 🥳。

第 1 步:让 AI 生成期望的模型

这一步一开始是让 Gemini 2.5 Flash nano banana 生成的,但是感觉可能因为没有 Thinking,效果不是很好,后来换成 ChatGPT …

阅读全文 »

不到 1 元,64K Flash + 8K RAM:CH32V006 直驱彩色 TFT LCD,100 FPS 无压力

上上周发了篇文章介绍了一下用 CH32V003 做过的项目(那些年用 7 毛钱单片机 CH32V003 做过的 DIY 项目),总的感觉用起来还是很舒服的,不过最近也了解到沁恒推出了差不多加量不加价的 CH32V006,资源不止翻倍, 价格在某宝上也只要 8 毛钱一颗

稍微研究了下,发现 CH32V006F8P6 和我在用的 TSSOP20 封装的 CH32V003F4P6,可以算是能 Pin2Pin 替换,这连开发板都可以直接用之前自己画的 V003 的开发板 PCB 😃。

0.96 寸 TFT LCD 驱动实测

之前用 CH32V003 的时候,即使它有 SPI 总线,但是 16KB Flash 实在有些捉襟见肘,即使驱动像 0.96 寸 TFT LCD 这样的小尺寸屏幕,分辨率为 160x80,色深为 16 位,一张全屏背景图就要消耗 …

阅读全文 »