👣

Raspberry Pi Picoの固有IDをMicroPythonから取得する

2021/08/20に公開

初めに

Raspberry Pi Picoなどのマイコンを使ってセンシングを行っている場合、「どの機器で記録した値か」を識別するために何かしらの識別子(ID)が欲しくなることがあります。
Raspberry Pi Picoには固有ID(UID: Unique ID)があるようなので、MicroPythonから取得する方法を調べてみました。

固有IDの取得

MicroPythonを使っている場合、machine.unique_id()で固有IDを簡単に取得することができます。
返り値は8バイト(64ビット)のバイト列です。(Raspberry Pi Picoの場合、サイズはボード次第)

import machine
import binascii

uid = machine.unique_id()
print(str(binascii.hexlify(uid), "utf-8"))

手元のRaspberry Pi Picoでは、以下の値が出力されました。

e6605481db385d37

Raspberry Pi Picoの固有ID

上記の通り、Raspberry Pi Picoの固有IDを取得することができました。
ただ、Raspberry Pi Picoの主要チップである「RP2040」に固有IDがあるわけではなく、NORフラッシュメモリの固有IDを読み出しているようです。
そのため、RP2040を使った他のボードでは動かない可能性があるので注意が必要です。

最後に

Raspberry Pi Picoから固有IDを取得することができました。
この固有IDをセンシングした値と一緒に保存しておくことで、識別が楽に行えそうです。

参考資料

以下のページを参考にしました。

Discussion