ST25DVでNFC基板名刺を作ってみた

# はじめに

この記事は[UEC 2 Advent Calendar 2024](https://adventar.org/calendars/10198)の21日目の記事になります。
20日目の記事は**なゆた**さんの [リアルバーチャルライブに行ってきたよ](https://note.com/nayutacitrus/n/n3b5d6b28eee2) でした。
ライブでしか味わえない楽しさってありますよね。それを学生が作り出せてるVLLって本当にすごいと思います。

どうも、名前に地名がはいってない唯一の国立大学であることがやたら擦られている電気通信大学という大学で大学生をしているもつもつと申します。今回はタイトルの通りの基板名刺(デバイス？)を作った話やそれをものコンに出したらお金がもらえた話などをしたいと思います。

# 基板名刺って何？
その名の通り、基板の、名刺です。

下の画像のような基板は見たことがある方も多いんじゃないでしょうか？
こういった基板、最近では非常に安く製造してくれる業者のお陰で個人でも自分で設計した基板を簡単に実物として手に入れることが可能になっています。

![SEG_DVD_430_-_Printed_circuit_board-4276.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360500/dc863cab-9aca-79f6-276c-57788e456c54.jpeg)
© Raimond Spekking / CC BY-SA 4.0 (via Wikimedia Commons) [SEG DVD 430 - Printed circuit board-4276](https://commons.wikimedia.org/wiki/File:SEG_DVD_430_-_Printed_circuit_board-4276.jpg), [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/legalcod)

:::note
### PCB基板製造業者について
よく聞くメーカだと[JLCPCB](https://jlcpcb.com/jp/), [PCBWay](https://www.pcbway.jp/), [PCBGOGO](https://www.pcbgogo.jp/), [ELECROW](https://www.elecrow.com/), [FusionPCB](https://www.fusionpcb.jp/fusion_pcb.html) あたりを使ってる人が多い気がしますね。
僕はJLCPCBを使うことが多いですが、単純な基板製造のみだと5枚作って送料込み込みで$3以下(日本円だと500円くらい？)とかいうどうして利益が出るのかわからん金額で作ってもらえたりします。
他の業者も知りたい方はこちらの [格安プリント基板製造業者の価格比較](https://www.jh4vaj.com/archives/31008#toc7) という記事がわかりやすくまとめてくれています。
:::

基板上には回路パターン（電気が流れたりする道）やシルクスクリーン（よく白い文字が書いてあるアレです）をうまく用いることで好きなデザインを作ることができるのですが、これを応用して名刺を基板で作ってしまおう！というのいわゆる基板名刺ってやつです。

近年特にエレクトロニクスのオタクの間では比較的一般的な文化になっているようです（要出典）

以下にいくつかインターネッツで見つかる事例を載っけてます。
<dl>
    <dt><a href = "https://rofumi.net/circuit-business-card/">記憶に残る「基板でつくる名刺！」作り方を6stepで解説]</a></dt>
    <dd>ステップバイステップで作り方の解説まであるので作りたい人は是非。</dd>
    <dt><a href = "https://nlab-c.hateblo.jp/entry/meishi4key">名刺めんこバトル最強！？名刺基板の作り方(Meishi4Keyビルドガイド)（Kicad）</a></dt>
    <dd>名刺めんこバトルやりたいですね、デカいの作ればいいかな？</dd>
    <dt><a href = "https://unyacat.net/2022/02/06/pcb-business-card/">プリント基板でNFCタグ名刺を作ってみた</a></dt>
    <dd>めちゃくちゃインスピレーションをもらいました。あとアンテナ設計周りで非常に助かりました。</dd>
    <dt><a href = "https://youtu.be/VQmWycFB-wM?si=Wc29rhxk8raNb2Np">How to make a PCB Business card</a></dt>
    <dd>英語ですが動画なのでわかりやすいと思います。</dd>
</dl>

# 私が基板名刺を作るまで

ここからは少しだけ、僕の基板名刺との出会いからNFCのアイデアを経て今回作る基板名刺に至るまでの話をしたいと思います。
技術的な話や実際に作ったものが見たいときは**つくったもの**まで飛ばしてください。

### 基板名刺を知る
サークルの先輩が基板名刺を作っているのを知り、これは自分も作らなくてはと思ったのがすべての始まりです。ArduinoやRaspberry Pi Picoのオリジナルボードもいいなとは思ったんですがどうせ作るなら新規性があって面白いのが作りたいじゃないですか？ 
このままいいアイデアが浮かばずに流れこのときは作らずじまいでした。

### NFCカード名刺を知る
一昨年の冬頃にとある国内の学会に参加したんですが、そこでとある研究室の人が[プレーリーカード](https://prairie.cards/) というものを使っており、簡単に言うとスマホをタッチするだけでSNS等のリンクがまとめられたサイトにアクセスでき、カードの持ち主はそのサイトを色々カスタマイズできる、というものでした。
これはとてもいいなと思ったのですが、利用料自体はタダとは言え書き込まれたリンクを変えられない（＝サービス終了したら使えない）カードにそれなりの金額を払うのがどうにも気に食わず使いませんでした。
ただこのタイミングで普通のスマホから自由に書き換えができるNFCタグやカードの存在を知り、サークル等で色々遊んでみたりなどしていました。

### ST25DVを知る
これ自体は何が直接のきっかけだったかは忘れたんですがST25DV(詳細は後述)というI2Cで書き換えができるダイナミックタグICを知り、ここまでのすべてが繋がりました。マイコンとNFCタグを載せて色々遊べる基板を作れば新しいし面白いし便利じゃん！ということで作り始めました。

### UPoCにエントリー
すこし話はそれるのですが電通大では[U☆PoC～UECアイディア実証コンテスト](https://www.uec.ac.jp/research/venture/contest.html)といういわゆるものづくりコンテストのようなものが毎年開催されており、昨年にもチームメンバーとして参加し、優秀賞を取っていたことから今年のコンテストにこれを出そう！ということになりました。
（実はUPoCにはもう一つ出したりもしたのですがその話もいずれ書きたいと思っています）

というような経緯で面白基板名刺的なのを作ってみむとて、作りました。

# つくったもの
## プログラマブルNFCタグデバイス(仮称)
### 構成部品
#### ST25DVダイナミックNFCタグIC
今回のデバイスの根幹部品。
通常のNFCタグと同様にNFC経由での通信ができつつ、MCUとI2Cで通信ができるすぐれものです。
Arduino用にSTMicroがライブラリを提供してくれているので基本的な機能は簡単に使うことができます。
https://github.com/stm32duino/ST25DV
ただこのライブラリをESP32にそのまま使うとESP32とArduino(STM32?)のWireライブラリの仕様の違いが干渉してエラーを吐くという現象が起こりました。
I2Cのピンを別で設定してあげたら上手く動きました。

データシート等見たい場合はこちらから
[ST25DV-I2CシリーズNFCダイナミック･タグIC](https://www.st.com/ja/nfc/st25dv-i2c-series-dynamic-nfc-tags.html)


#### ESP32-S3
今回のデバイスのMCU。
Espressif社製のBluetooth、Wi-Fiが使えるマイコン
最初のプロトタイプではボードとして売られてるのを使い、基板設計時にはモジュールを使用しました。

### プロトタイプv0
外観
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360500/c175d2b9-59cc-5711-42ef-41a2f4ddc4bb.png)
[ESP32 S3のDevkitC](https://www.espressif.com/en/products/devkits/esp32-devkitc/overview)と[AdafruitのST25DVモジュール](https://www.adafruit.com/product/4701)をブレッドボード上でI2Cで繋いでいい感じに機能がテストできることを確認したりしました。
確かESP32は秋月で、ST25DVのモジュールはスイッチサイエンスで買ったと思います。

- 秋月電子の商品ページ(販売コード：117073)
    - [ESP32-S3-DevKitC-1-N8 ESP32-S3-WROOM-1開発ボード 8MB](https://akizukidenshi.com/catalog/g/g117073/)
- スイッチサイエンスの商品ページ(商品コード：ADA-4701)
    - [STEMMA QT/Qwiic互換 ST25DV16K搭載 I2C RFID EEPROMモジュール](https://www.switch-science.com/products/7903)

回路図等は特に残してないのでわからないですが、だいたいプロトタイプv1と同じはずです。

### プロトタイプv1
デバイス外観
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360500/52423892-6bdc-d093-9b46-1899aad18d02.png)

スカスカ回路図（後で書きますが、書き込み回路が**動作しません**）
![SCH_Schematic1_1-P1_2024-12-21 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360500/2c367978-ba76-9c7f-c2bb-359013f6bbe1.png)

基板レイアウト
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360500/b236810d-2bad-0cb0-5e2b-f30abe0306be.png)

デバイスとしてはそれ単体で完成して動作するものを目指して作りました。
基本的にはプロトタイプv0のうち、ESP32のモジュール以外の部分を基板に起こして作っています。
基板はEasyEDAで設計し（実はそのせいでうまい共有方法がわからない）、JLCPCBでESP32のモジュール以外をPCBAで部品実装までやってもらいました。（モジュールも実装してもらうと結構値段が上がったはず）
大体5枚で$35強だったので別で買ったモジュール等含めるとだいたい1枚1700円前後で作れる感じですね。

動作としてはとしては概ね欲しい機能をちゃんとやってくれたんですが、書き込み回路でUSB-シリアル変換のチップを安いCH340Cで賄ったところ、USBシリアル経由の書き込み回路が動作しませんでした。Arduinoコンパチボードを使ったときは上手く使えたのでESP32の書き込み動作周りをあまり理解せずに作ったのが良くなかったかなと。
幸いESP32-S3君はもう一本変換を噛まさずに直接USBを喋らせて書き込む経路があり、今回はそちらが動作したので事なきをGETしました。

### ソフトウェア
ソフト周りはESP32に書き込むファームウェアをArduino言語で、PC側で通信して書き換えるリンクを送るソフトをFletを使ってPythonでぐいぐい使えるGUIを作りました。

ここらへんはそのうちちゃんと整備し直したらGitHubにでも上げたいと思ってますがまだできてません...

# まとめとそれとあと全部
UPoCでは実際にデモを触ってもらったところ結構感触が良く、実際に企業賞を**2つも**頂けました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360500/baa29fa7-1c67-10c4-e532-a4822ef8446d.png)


![DSC_3918.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360500/57b52f61-6000-dfde-6b26-adee8154d34e.jpeg)

はい、まあそういうことです。~~Intel最高！~~

ただ未だものとしてはソフトもハードも未完成ではあるので今後ある程度ちゃんと使いやすい形で完成させたいですね。
それから最初は名刺デバイスとして作っていたんですが、むしろNFC機能付きのESP32開発ボードとして割と汎用的に使えた方が楽しいんじゃないかという気づきも得まして、そこら辺も含めて次のプロトタイプ、ないし完成版？を作っていきたいと思います。

あとはどんなに面白いデバイス作ってもファームウェア作らないと使えないんじゃ使える人限られちゃいますよね？そこをなんとかしたいかもなということで来年のUPoCに乞うご期待、といった感じで手がかじかんできたので今回はここまで、後半だいぶ適当になってきてますが終わりたいと思います。ここまで読んでくれた方がいたらマジ感謝、クソデカアプリシエイトです。

[UEC 2 Advent Calendar 2024](https://adventar.org/calendars/10198)の明日の記事は**変化 hEnka**さんがロボットのお話を書いてくれるらしい？です。ロボット作れる人ってめちゃくちゃかっこいいですよね。僕も在学中に一回くらい胸張ってロボット作った！！！って言えるように頑張りたいです。

それでは、ごきげんよう。