解法
Micah Scott购买了LELO的Lyla,这是一款可充电、防水的遥控震动器,她很喜欢。但无线电范围差,控制延迟且笨拙,基于倾斜的加速度计输入从未感觉合适。粗糙的选择是忍受它、买另一个玩具,或者拆开震动器;她认为玩具本身不错,问题出在遥控器上,所以她决定只替换遥控器。
为了了解玩具的无线电语言,她从FCC ID数据库开始,内部照片显示一个MSP430微控制器和一个CC2500 2.4GHz无线电芯片,这些芯片都有公开的数据手册。她没有读取或重编程原始固件,而是打开了一个牺牲的遥控器,将测试线焊接到两个芯片之间的SPI总线上,并用一个小板作为嗅探器捕获了初始化序列和包格式。结果很简单:没有配对,信道固定,每个包中重复一个电机强度字节,由原装遥控器以缓慢的9 Hz发送。
她的替换遥控器使用了常见部件:Arduino、CC2500分线板和超声波距离传感器。距离映射到电机功率,因此在传感器前挥手或移动身体即可驱动震动器,无需学习按钮。它发送频率大约是原装遥控器的十倍,带来了响应性和噪声容限,而且因为没有寻址,范围内的任何震动器都会响应。她没有使用定制充电电子元件,而是掏空了一个22美元的、3200毫安时的手机充电宝,已经包含电池、充电器和升压转换器。
她在Blender中建模了3D打印外壳,并发布了Arduino库、固件和外壳文件,完成的设备感觉不像电器,更像一种模拟乐器:传感器上方空气柱成为身体可以触碰、按压或挥舞的空间,关闭了她想要的反馈回路。帖子的更新提到LELO给她寄了一个Lyla 2,这也适用于该遥控器,因为Lyla、Lyla 2和Tiani 2使用相同的无线电协议。这篇帖子在2012年11月出现后,在Hacker News上获得了952分和253条评论。
What it achieved
保留好的玩具,只替换遥控器:声纳传感器将上方空间变成模拟控制面
为什么有效
FCC备案照片先指明了芯片,因此逆向工程从公开的数据手册开始,而不是黑盒猜测。
在微控制器处于复位状态时嗅探SPI总线,暴露了无线电配置和包,而无需修改玩具固件。
没有配对和固定信道意味着任何CC2500发射器都能驱动震动器,一个协议支持Lyla、Lyla 2和Tiani 2。
无移动部件的声纳传感器使控制免提且模拟化:距离变为强度,身体的运动关闭反馈回路。
发送频率大约高十倍,带来响应性和噪声容限,22美元的手机充电宝提供电池、充电器和升压,无需定制板。
可以借鉴什么
破解最薄弱的组件,而不是整个产品:FCC照片和总线嗅探器打开专有无线电而无需固件研究,通用手机充电宝替代定制电源设计
后续
Micah Scott完成了项目,作为日常设备使用,并发布了Arduino LeloRemote库、固件、外壳文件和原型视频。这篇帖子在2012年11月在Hacker News上获得了952分和253条评论,LELO后来给她寄了一个更新的Lyla 2,这也适用于同一个遥控器,因为Lyla、Lyla 2和Tiani 2共用一个无线电协议。她将结果视为一个开始:玩具支持身体的反馈回路,而不是阻碍它们,未来的传感器可以预测运动而不仅仅是反应。
从这里,追溯依据
参考来源
- Hacking My Vagina — Making a Vibrator That Listens to Your Body scanlime.org
- Hacking my Vagina — Hacker News discussion news.ycombinator.com