iButton: 使用可以成功使用 Arduino 编写的旧 RW1990.1 密钥时, Flipper 会卡在"写入 ID"上。
作者: mykola-y创建于 2026年9月12日更新于 2026年9月16日
标签type/bug
使用 Arduino Uno 连接键,使用 OneWire 库和 4.7 kΩ 拉升器进行 RW1990.1 检测。使用 0xD1 写标志命令和 0xB5 读回命令进行检测。以前正常工作的键和 Flipper 无法编程的键都返回:B5 响应:0xFE,并被检测为 RW1990.1。使用 Arduino Uno 成功编程了所有五个 RW1990.1 键。对于 RW1990.1,工作序列是:重置,发送 0xD1,写入位 0 以启用写入,重置,发送 0xD5,写入所有 64 个 ROM 位,数据位反转,发送 0xD1,写入位 1 以禁用写入,读取 ROM 并验证。编程后,所有五个键都读取:01 7B 0A 8E E8 00 00 CE。CRC 验证:存储的 = CE,计算的 = CE,CRC 通过。所有五个键都通过了完整的 ROM 验证。重要观察 在使用 Arduino 进行初始测试时,在不进行反转的情况下写入目标字节会产生:目标:01 7B 0A 8E E8 00 00 CE 读回:FE 84 F5 71 17 FF FF 31 这是目标 ROM 的位元反转。在更改 Arduino 编写器以在发送位之前对每个字节进行反转后,编程成功:验证 ROM:01 7B 0A 8E E8 00 00 CE 验证 CRC:存储的 = CE,计算的 = CE,CRC 通过。
内容来源: DarkFlippers/unleashed-firmware