一颗珠子就是一枚透镜,2304 颗让平面印刷品看起来是立体的
那些玻璃珠画不是印刷戏法:每颗珠子都是一枚微小的球透镜,它只取后方图像的一小条并把它放大。我把这个效应的真实 GPU 光追移植进了浏览器,你可以自己拧旋钮。
在受限硬件上跑真实协议:内存预算、工具链,以及把网络栈塞进单片机的取舍。
23 篇文章
那些玻璃珠画不是印刷戏法:每颗珠子都是一枚微小的球透镜,它只取后方图像的一小条并把它放大。我把这个效应的真实 GPU 光追移植进了浏览器,你可以自己拧旋钮。
我把一个真实 mesh VPN 的线协议用 C 在 ESP32 上重写了一遍,然后把编码器编译到笔记本上,看它真正吐出的字节。第一个把我绊住的,是一个会「撒谎」的头字段——而这个谎是承重的。
在 Linux 上克隆 FreeRTOS 内核、用 gcc 编译其 POSIX 端口,跑了五组真实实验——抢占式调度、vTaskDelay 对比忙等、队列、互斥量优先级反转、栈高水位标记——再把每个概念映射到 ESP32 上的 ESP-IDF。
一份诚实的传感器节点 BOM 拆解:板子、稳压器、传感器与射频各自要让你的 ESP32 续航付出多少;再用一个 Python 模型算出真实的平均电流、电池天数与每月数据量,每个假设都明确标注。
一份工作台上的真实清单,而不是购物单:用编译器和 size、objdump、readelf 看清代码的真实开销,用 gdb 加 OpenOCD 走 SWD 调试,用 picocom 与 socat 搭出串口终端,用 sigrok 驱动逻辑分析仪,用 esptool 烧录——凡是能跑的工具,都附上真实输出。
交叉编译就是用目标三元组与主机不同的工具链,在 x86 机器上构建 ARM 二进制。我用 armhf 和 aarch64 gcc 实际编译,用 file 和 readelf 验证目标格式,撞上一次真实的 Exec format error,再用 qemu-user 把 ARM 程序跑起来。
动手实操 Modbus —— 那个驱动工厂的极简协议。通过 TCP 和 pty 模拟的 RS485 链路,展示真实请求/响应字节、CRC16 校验和异常处理。
用 C11 原子操作和 acquire/release 内存序手写一个无锁 SPSC 环形缓冲区。真实基准测试、ThreadSanitizer 竞态检测、与互斥锁队列的性能对比。
很多单片机没有 FPU,一次 float 运算就是一次软浮点库调用。本文用真实 C 代码和真实输出讲清 Q16.16 定点数学:乘法溢出的真实失败、与 double 的真实误差、查找表正弦,以及诚实的计时对比与适用边界——包括什么时候不该用它。
用真实程序把字节序讲透:在 x86 上打印 32 位整数的字节、htonl 与网络字节序、直接发送结构体过 socket 的经典 bug、Modbus 寄存器,以及如何检测字节序并做字节交换。
超级循环对许多设备来说够用,但一个慢任务会拖垮所有其他任务。用真实测量展示抖动和漂移,以及无需 RTOS 的修复方案:固定时间片调度器、状态机和看门狗。
在 Linux 上用 SocketCAN 和虚拟 vcan0 接口搭起一条 CAN 总线:真实帧、真实的仲裁规则、candump、cansend、cansniffer、CAN-FD,以及通往真实硬件的路径。
MQTT 5 带来了共享订阅、请求响应、用户属性、消息过期和真正的 reason code。这篇用 mosquitto 2.1.2 逐个实测,看看哪些特性真正改变了设备端的设计。
一篇面向自有设备的固件分析实战:从哪里拿到厂商或 OTA 固件镜像,binwalk 如何识别 squashfs、cramfs、jffs2 与 uImage,如何用 binwalk -e 与 unsquashfs 提取固件,以及如何用 strings 与 grep 猎捕硬编码凭据、私钥和 API token。
一套从逻辑分析仪抓包出发的串口协议逆向方法:接好 UART 与 SPI I2C 的线,找出波特率,读懂十六进制字节,用校验和验证假设,最后写一个小的 Python 解码器。
一份 ESP32 TCP 调试实战指南:lwIP socket 缓冲区、Wi-Fi 重传与 Nagle/延迟 ACK 的相互作用如何造成卡顿、复位与半开连接;哪些统计与 Wireshark 视图能真正揭示 TCP 重传;附 ESP-IDF 代码片段与排查清单。
厂商云是一种负债。本文讲清楚在 ESP32 上自助完成固件升级的完整链路:两个 app 分区加一个 OTA data 分区、esp_ota_* API、签名镜像,以及新固件启动失败时的回滚机制,还有断电、超容、未确认等真实故障模式与串口救砖。
一篇讲透 ESP32-C3 电源管理的实战笔记:为什么 Wi-Fi 射频才是耗电大头,active、modem sleep、light sleep 与深度睡眠各自在连通性上要付出什么代价,DTIM 与监听间隔如何用延迟换续航,怎样低成本测出真实电流,以及把设备设计成周期上报、常驻监听还是市电供电。
MQTT 比大多数 IoT 消息协议都更契合单片机的预算——最小两字节的固定头、发布/订阅解耦、以及可按下调的 QoS。本文说清楚,一旦把 TLS、证书和重连都算进来,一套 MQTT ESP32 方案到底要付出什么。
一套动手可用的逆向工程 BLE 方法:用 bluetoothctl、nRF Connect 和 Python 的 bleak 枚举 BLE GATT 服务与特征,用 HCI snoop log 抓取链路并在 Wireshark 里分析,最后重建 App 的私有协议。
一份务实的 2026 年 ESP32 vs ESP8266 选购指南:CPU、内存、Flash、Wi-Fi、BLE、GPIO、安全、功耗、工具链与价格档位,附决策表和按场景的具体推荐——包括什么时候 ESP32-C3 才是默认答案。
一篇可以直接照做的 ESP-IDF 教程:如何在 Arduino、PlatformIO 与 ESP-IDF 之间做选择,安装工具链、认识工程结构、写一个最小 app_main、点亮 GPIO、用 UART 打日志,最后让 ESP32-C3 以 station 模式连上 Wi-Fi,所有命令均可复制。
ESPTier 用纯 C 在 ESP32-C3 上复刻了 EasyTier v2.6.4 的线协议——TCP 分帧、SipHash-1-3 身份、AES-128-GCM、路由同步与转发——让一颗受限 MCU 成为 overlay 网络中真正可被 ping 通的一员。