成了,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 位,一张全屏背景图就要消耗 …

阅读全文 »

汇报一下基于 CH32V003 + 电子墨水屏的超低功耗 Tag 续航测试结果

在 5 月份的时候,分享了一个基于沁恒 CH32V003 + 电子墨水屏的一个超低功耗时间 Tag 项目(见 电流15uA续航一年?CH32V003低功耗应用尝试 ),想借此学习了一下低功耗嵌入式开发,到上周,这个测试设备的终于支撑不住,已经差不多耗尽了电池。

回顾一直技术方案

之前的文章已经介绍了大概的技术方案,使用 CH32V003 作为主控 MCU,电子墨水屏作为显示设备,PCF8563 作为 RTC 时钟保存时间,CH32V003 使用待机模式,每 10 分钟唤醒一次,从 RTC 读取时间并刷新电子墨水屏,然后通过 PMOS 将电子墨水屏的供电断开。

在实际测试过程中,不刷新电子墨水屏且 CH32V003 处于待机状态时,电流大概是 17uA,在 CH32V003 唤醒且刷新屏幕时,电流大概是 15mA。回去看了下之前的文章,发现把刷新屏幕的电流算小了,原先用的 5mA,这次刷新期间使用 15mA 来计算。

综合刷新屏幕所使用的时间和次数,估算整体电流消耗大概是 142uA。

配合一个 450mAh 的电池,理论续航时间是 450 / .142 / 24 =132 天

RTC



阅读全文 »