【FIDO安全密钥】OpenSK nRF52840 MINI - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

专业版 【FIDO安全密钥】OpenSK nRF52840 MINI

简介:【已验证】基于 nRF52840 和 OpenSK 的 USB KEY(FIDO安全密钥),采用触摸感应按钮,可以用来 Passkey 无密码登录网站,支持 FIDO2、FIDO及U2F 等协议。

开源协议: GPL 3.0

(未经作者授权,禁止转载)

创建时间: 2024-02-05 19:15:44
更新时间: 2024-04-21 14:00:34
描述
> _最近更新:2024-04-10 增加 E73 模块版本,方便焊接;MINI版本无修改。_ # 简介 随着 Passkey 无密码登录的普及,以及开源密码管理器 Bitwarden 自身支持无密码登录,拥有一个安全密钥就有了一定的必要性,但市面上成品价格过高,故制作一款安全、便宜及体积小的设备。 本项目基于谷歌的开源项目 [OpenSK](https://github.com/google/OpenSK) 修改适配,Google 作为 FIDO 联盟成员,且代码通过 FIDO 认证,安全性具有保障。Bootloader 基于 [Adafruit_nRF52_Bootloader](https://github.com/adafruit/Adafruit_nRF52_Bootloader) 修改适配,支持 uf2 文件烧录,方便后续更新固件。 # 硬件相关 - 硬件上分为两个版本,直接使用nRF52840芯片的版本(后文简称**MINI版本**),以及使用E73模块的版本(后文简称**E73版本**); - MCU 采用 [nRF52840](https://www.nordicsemi.com/Products/nRF52840),带有独立的安全系统,二手一片5元左右; - 采用外部高速晶振(USB功能需要),内部低速晶振; - 保留TVS电路,防止静电意外烧毁设备或电脑; - 预留NFC焊盘(OpenSK后续将支持NFC功能); - 采用触摸感应按钮,相比微动开关使用更方便,背面微动开关用作进入烧录模式; ### MINI版本: - USB Type-C接口,体积很小; - 电源采用内置LDO,减少外部元件; - 移除蓝牙相关电路,OpenSK后续不会支持蓝牙功能; - LED灯及触摸感应按钮放在尾部,采用3D打印外壳。 ### E73版本: - USB Type-A接口,可以尾部加装Type-C实现双接口; - 电源采用内置DCDC; - 采用U盘标准版型B,可放入标准公版U盘外壳。 # 图片预览 ### MINI版本: ![带外壳 (小).jpg](//image.lceda.cn/pullimage/Ky5Fxf05QtsP5J8mI9gs56Uu8Uz2tspjF39MCtSM.jpeg) ![使用 (小).jpg](//image.lceda.cn/pullimage/Xnwb2PVYY0DP40D5qHNSDJ4TCk2O0H0BRTzbp4qX.jpeg) ### E73版本: ![IMG_20240410_170149 (小).jpg](//image.lceda.cn/pullimage/zGRRHKyjYWKkSxa21wdqNgOlgN8IlcnNYkvZ0QMv.jpeg) # 复刻注意事项 ### 项目底部BOM表是两个版本的,所以请到工程中导出单个版本的 ### MINI版本: - 烧录固件时选择带 **MINI** 字样的,不要选错版本!! - 打样板厚为 0.8 mm,不然 Type-C 接口无法焊接上去; - nRF52840 是 BGA 封装,焊接有一定难度,至少需要有加热台或者风枪; - 焊接时先焊接带有芯片的一面,然后通过 OpenOCD 烧录 Bootloader,并测量验证无问题再焊接其他元件; - 尾部的挖槽可以在焊接完成后剪掉,金属化侧边就是触摸区域,也可以保留当挂绳孔; - 3D外壳的后盖打印白色或者透明的,不确定黑色能不能透光。 ### E73版本: - 烧录固件时选择带 **E73** 字样的,不要选错版本!! - 打样板厚为 1.6mm; - 如果不使用公版外壳时,可以在尾部焊上Type-C公头带小板的模块,注意引脚定义顺序; - 触摸弹簧选择底部直径4mm左右的,不锈钢的弹簧可能不沾锡,可以用铜箔胶带粘上。 # 更新日志 - 2024-04-10 增加 E73 模块版本,方便焊接 - 2024-03-23 增加 3D 打印外壳文件 - 2024-03-17 增加 Windows 环境烧录说明 - 2024-02-05 首次发布 # 固件烧录 ## 首次烧录 Bootloader 本教程采用 Picoprobe(DAPLink) 在 Linux(WSL2) 环境下烧录,只需要手边有一个 RP2040 开发版即可使用。 Windows 下可以使用 WSL2 + usbipd-win , 或者直接安装 Windows 版的 openocd (https://gnutoolchains.com/arm-eabi/openocd/)。 其他烧录方式可以查看该文档:https://github.com/joric/nrfmicro/wiki/Bootloader 。 1. 启动 OpenOCD ```sh openocd -d2 -f interface/cmsis-dap.cfg -f target/nrf52.cfg -s tcl ``` 1. 连接 OpenOCD 保持上一步窗口打开,并在新窗口中运行下面命令 : ```sh telnet localhost 4444 ``` 1. 解锁芯片并烧录 上一步 telnet 窗口分别运行下列命令,注意 4-5 行中 hex 文件名及路径替换成实际文件的(相对于 openocd 命令运行路径,如果不清楚就使用绝对路径): ```sh nrf52_recover nrf5 mass_erase flash write_image xxx_bootloader-xxxx.hex flash verify_image xxx_bootloader-xxxx.hex reset run ``` 1. 进入 DFU 模式 按住 DFU 键(背面那个大按键)将设备插入电脑,设备上 LED 灯呼吸闪烁并且电脑上显示出一个存储设备即成功进入 DFU 模式。 这时将相应的 .uf2 文件复制进存储设备即可完成烧录。 ## 升级 Bootloader 之后有 Bootloader 版本升级时操作,进入 DFU 模式,将附件中更新文件(`update-xxx_bootloader-xxxx_nosd.uf2`)复制进去即可。 ## 烧录 OpenSK 进入 DFU 模式,将附件中OpenSK固件(`xxx_opensk_xxx.uf2`)复制进去即可。 # 自行编译固件 (可选) ## 编译 Bootloader Bootloader 基于 [Adafruit_nRF52_Bootloader](https://github.com/adafruit/Adafruit_nRF52_Bootloader) 修改,正常情况使用附件中固件即可,如果需要自定义则可自行编译固件。 1. 安装依赖 参阅:https://github.com/adafruit/Adafruit_nRF52_Bootloader?tab=readme-ov-file#prerequisites 1. 下载源码 ```sh git clone -b master https://github.com/adafruit/Adafruit_nRF52_Bootloader cd Adafruit_nRF52_Bootloader git submodule update --init ``` 1. 应用补丁 将附件中补丁文件 `OpenSK_Bootloader_xxxx.patch` 复制到项目根目录,然后运行命令: ```sh git apply OpenSK_Bootloader_xxxx.patch ``` 1. 编译 ```sh make BOARD=pca10059 clean && make -j BOARD=pca10059 all ``` 编译生成的文件将存放在 `_build/build-pca10059` 目录中。 ## 编译 OpenSK OpenSK 基于 [OpenSK](https://github.com/google/OpenSK) 修改,正常情况使用附件中固件即可,如果需要自定义则可自行编译固件。 1. 安装依赖 编译相关依赖参阅:https://github.com/google/OpenSK/blob/2.1/docs/install.md#software-requirements 1. 下载源码 ```sh git clone -b 2.1 https://github.com/google/OpenSK.git cd OpenSK ./setup.sh wget -P tools https://github.com/microsoft/uf2/raw/master/utils/uf2conv.py wget -P tools https://github.com/microsoft/uf2/raw/master/utils/uf2families.json chmod a+x tools/uf2conv.py ``` 1. 应用补丁 将附件中补丁文件 `OpenSK_xxxx.patch` 复制到项目根目录,然后运行命令: ```sh git apply OpenSK_xxxx.patch cp -r boards/nordic/. third_party/tock/boards/nordic ``` 1. 编译 ```sh ./deploy.py --board=nrf52840_dongle_dfu --programmer=none --opensk ./tools/uf2conv.py -c -f 0xada52840 \ -o target/nrf52840_dongle_dfu_merged.uf2 \ target/nrf52840_dongle_dfu_merged.hex ``` 编译生成的文件将存放在 `target` 目录中。 # 依赖 - [google/OpenSK](https://github.com/google/OpenSK) - [Adafruit_nRF52_Bootloader](https://github.com/adafruit/Adafruit_nRF52_Bootloader)
设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
工程视频/附件
序号 文件名称 下载次数
1

nRF52840_MINI.zip

39
2

nRF52840_E73.zip

45
工程成员
侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP