LastZactionHero/defcon-silent-disco
GitHub: LastZactionHero/defcon-silent-disco
一款基于 RP2040 的 DEF CON 沉默舞会可穿戴徽章硬件项目,集成音频播放、RGB 灯效、红外通信与板对板配对功能,附带完整的 KiCad 设计文件与自动化工具链。
Stars: 0 | Forks: 0
# DEF CON silent disco 徽章
基于 RP2040 的可穿戴徽章,配备 4 个可寻址 RGB LED、microSD 音频播放、耳机放大器、IR 接收/发送以及 Shitty Add-On (SAO)。
Mecha Tokyo 舞会丝印美学。
专为板对板配对设计,采用锯齿互锁边缘 + 3D 打印 IR 灯罩。
## 当前状态 — 在手机上查看
### 3D 等轴视图(主视觉图)


### 3D 正视图(制造外观)
| 正面 | 背面 |
|---|---|
|  |  |
### 2D 平面图(俯视图,可见安全间距 — 设计审查)

## 规格一览
- **外形尺寸:** 86 × 54 mm 信用卡外形,尖角
- **配对几何结构:** 左右边缘为真实锯齿(每侧 9 个齿,6mm 间距,2mm 深度)— A 板右侧的齿插入 B 板左侧的槽口中
- **叠层:** 4 层(F.Cu,In1.Cu = GND,In2.Cu = +3V3,B.Cu = GND 敷铜)
- **元件:** 共放置 80 个(F.Cu 上 79 个,B.Cu 上 1 个 microSD)
- **安装:** 角落处 4× M2.5 孔(2.7mm)
- **飞线长度:** 跨越 87 个网络的 1422.9 mm(不包括作为内层的 GND)
## 子系统
- **MCU:** RP2040 (U3) + W25Q16 flash (U2) + 带有 15p 负载电容的 12 MHz 晶振 Y1 + 12 个电容的去耦环(每个 U3 电源引脚旁边各有一个 100n 电容)
- **电源:** USB-C (J10) → TP4056 充电器 (U10) → JST-PH LiPo (J11) → SS-12D00 开关 (SW1) → ME6211C33 LDO (U11) → +3V3 轨道
- **LED:** 顶部边缘分布 4× SK9822-EC20 5×5mm RGB 可寻址 LED,每个 LED 配备 10nF 旁路电容
- **音频:** TM8211 I²S DAC (U20) → FDA1308 耳机放大器 (U21) → 220µF AC 耦合 (C45/C46) → Amphenol 10038075-D0P 立体声插孔(J20,插头从顶部边缘向上引出)
- **IR:** TSOP4838 接收器 (U30) 位于左侧边缘的锯齿凹槽内,IR LED (D20) 位于右侧边缘的锯齿峰上 — 均处于 y=110 位置,用于板对板对齐
- **按键:** 3× TS-1187A 触觉开关(SW20-22)位于板中部排成一行
- **连接器:** SAO 2×3(J30,靠近 U3 SAO 引脚以缩短布线),Dev/SWD 1×5(J33,底排),UART 1×3(J32,靠近 U3 UART 引脚),microSD(J31,位于 B.Cu 上,以便从下方访问卡槽)
## 丝印 — mecha Tokyo 舞会
- **背面:** 粗大醒目的镜像 DEFCON 字标带有 24 道光芒,"// SILENT DISCO //" 标语,带有十六进制字符的八边形 DC32 徽标,角落装甲括号,人字形框架条纹,角落的对角线阴影,点阵“LED 雨”图案,github URL,0xC0FFEE / @LZH 特色元素。
- **正面:** 细微的边角括号和人字形强调,指示数据流向 USB-C 和音频插孔。位号丝印保持醒目,方便组装。
## 工具
`defcon_badge/tools/` 下的项目本地工具:
- `render_pcb.sh` — SVG/PNG 渲染
- `set_outline_v2.py` — 锯齿板轮廓生成器(间距、深度、IR-Y 可配置)
- `silk_mecha.py` — 矢量丝印艺术生成器(幂等,标记的 uuid)
- `move_components.py`, `flip_footprint.py`, `place_lib_footprint.py` — 放置旧版工具
- `sync_nets.py`, `fix_pad_nets.py`, `patch_j10_nets.py` — 网络分配工具
- `sweep_offboard.py` — 将所有元件扫到暂存网格
为未来 PCB 工作发布到 `~/.claude/skills/` 的技能:
- **pcb-placement** — `fp_meta.py`(旋转后的完整焊盘元数据),`place_at.py`(带有 0.1mm 网格对齐的焊盘相对锚点),`align.py`(行/列/分布),`ratsnest.py`(MST 长度质量指标),`whats_near.py`(描述板区域),`check_courtyards.py`,`check_edge_components.py`,`rotate.py`
- **pcb-views** — `render_all.sh`(6 个标准角度),`render_area.py`(正交俯视任意区域放大)
## 构建
```
make render # SVG/PNG renders
make fab # gerbers + drill + pos + BOM to fab/
make drc # design rules check
make erc # ERC summary
make clean # wipe generated artifacts
```
## 已知缺陷
- 尚无铜布线 — 放置已完成,可见飞线但信号尚未连线(需要使用 JRE 的 freerouting 或在 KiCad 中手动布线)
- 原理图有 71 个 ERC 违规(主要是偏离网格的端点和缺少 PWR_FLAG)— 均不会改变拓扑结构
- PCB 中的 J10 USB-C 接线已通过 `patch_j10_nets.py` 修补,因为原始原理图将 CC/VBUS/GND 全部误连到了一个网络
## 许可证
MIT — 详见 LICENSE 文件。
标签:KiCad, RP2040, 会议徽章, 可穿戴设备, 嵌入式系统, 电路设计, 硬件开发, 逆向工具