Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Wio Terminalのなんやかんや
Search
Kenta IDA
September 22, 2020
Technology
2
1.4k
Wio Terminalのなんやかんや
SeeedJP UG Online のLTで発表したWio Terminalの資料です。
Kenta IDA
September 22, 2020
Tweet
Share
More Decks by Kenta IDA
See All by Kenta IDA
Matter開発環境をざっくり眺める
ciniml
0
920
組込みRustでも でかい?JSONを扱いたい!
ciniml
2
950
ATOMDisplay_DisplayModule_M5Stack_UG_2023_Tokyo.pdf
ciniml
1
1.4k
Rusty Stack-chanのすすめ
ciniml
0
290
Raspberry Pi Picoデバッガ使用のすすめ
ciniml
0
1.5k
ベアメタル向けRust stdクレートの実装調査
ciniml
2
520
ESP32でSORACOM Arcつないでみた
ciniml
2
870
RustでCMSIS-DAP実装してみた。
ciniml
2
700
技書博初出展してみた
ciniml
0
290
Other Decks in Technology
See All in Technology
スプリント内で試験を完了させるには?アジャイル・スクラム開発に参加したQAエンジニアの悩みと対策
cybozuinsideout
PRO
1
120
SSMエージェントはIAMロールの夢を見るか/ Do SSM Agents Dream Of IAM Roles?
yukihirochiba
0
1.4k
二刀流でWinActorを活用してみた話
tamai_63
0
120
Feature Flag Deep Dive
biwashi
20
5k
Datadog による 自己完結的アプリケーションモニタリング
recruitengineers
PRO
3
130
調整さんの調整結果をカレンダーへ登録するGPTsを作った話
hrsano645
1
160
皆がすなるカオスエンジアリングといふものを、ネットワークオペレーションでもしてみむとてするなり
tjmtrhs
0
120
スクラムマスター不在でスクラムをやるのは(とても辛いので)やめておけ! #scrumfukuoka
nulabinc
PRO
4
900
Pass On What You Have Learned: Deploying to Production
ianlee1521
0
150
UIからの自動テスト事例
tomasagi
8
3.3k
小さく始めるAnsible
stopendy
0
210
S3成長記録@Storage-JAWS#3
p0n
0
130
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
21
3.8k
10 Git Anti Patterns You Should be Aware of
lemiorhan
644
57k
WebSockets: Embracing the real-time Web
robhawkes
59
6.9k
Debugging Ruby Performance
tmm1
68
11k
Into the Great Unknown - MozCon
thekraken
10
810
Infographics Made Easy
chrislema
237
17k
How GitHub Uses GitHub to Build GitHub
holman
467
290k
Large-scale JavaScript Application Architecture
addyosmani
501
110k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
39
4.3k
Documentation Writing (for coders)
carmenintech
59
3.7k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
319
20k
For a Future-Friendly Web
brad_frost
170
8.8k
Transcript
Wio Terminalのなんやかんや SUGOi 2020/09/22 Kenta IDA (@ciniml)
自己紹介 •井田 健太 (@ciniml) •仕事:組み込みソフト開発 •使用言語:C++, SystemVerilog, Go, Python 2020/9/22
Wio Terminalのなんやかんや 2
Wio Terminal 2020/9/22 Wio Terminalのなんやかんや •最近流行の筐体入りマイコン・モジュール • Wi-Fi 2.4GHz +
5GHz • Bluetooth5 • 液晶 (320x240) • ボタン • スピーカー • etc… •いろいろ付いてて楽しい 3
なんやかんや 2020/9/22 Wio Terminalのなんやかんや •ハードウェア構成 •拡張基板をつくってみた •デバッガのつなぎ方 •QSPIフラッシュの使い方 4
ハードウェア構成 2020/9/22 Wio Terminalのなんやかんや 5
ハードウェア構成 2020/9/22 Wio Terminalのなんやかんや •MCUが2つある • ATSAMD51P19A • RTL8720DN 6
ハードウェア構成 2020/9/22 Wio Terminalのなんやかんや •ATSAMD51P19A • Microchip製 • Cortex-M4F 120[MHz]
• 512[kiB] Flash • 192[kiB] RAM 7
ハードウェア構成 2020/9/22 Wio Terminalのなんやかんや •RTL8720DN • Realtek製 • Cortex-M0 20[MHz]
• Cortex-M4F 200[MHz] • 64+512[kiB] RAM • Wi-Fi + Bluetooth •ATSAMD51より強い 8
ハードウェア構成 2020/9/22 Wio Terminalのなんやかんや •周辺回路 • ほとんどATSAMD51側 に接続されている • LCD
• ボタン • ブザー, マイク, LED • 加速度センサー 9
メインMCU 2020/9/22 Wio Terminalのなんやかんや •開発者が使うのは (主に)ATSAMD51 • Arduinoで触れるのはこっち • RTL8720DNも
触れなくはない • SDKは公開されている • UART経由で書き込みも可 10
無線通信 2020/9/22 Wio Terminalのなんやかんや •Wi-FiとBluetoothはRTL8720DN側 •ATSAMD51とはSPI+GPIOで接続 • ATSAMD51がSPIマスター • RTL8720DNのリセット(CHIP_EN)
• RTL8720DNからの割り込み(IRQ0) 11
無線通信 2020/9/22 Wio Terminalのなんやかんや •RTL8720DN側に ネットワーク・スタック • TCP/IP, TLS •
Bluetooth Stack 12
無線通信 2020/9/22 Wio Terminalのなんやかんや •ATSAMD側はRTL8720DNに ATコマンドを送って制御 •制御用にESP32用のライブラリを いろいろ魔改造してぶち込んである • 結構カオス
13
拡張基板をつくってみた 2020/9/22 Wio Terminalのなんやかんや 14
Wio Terminalの拡張コネクタ 2020/9/22 Wio Terminalのなんやかんや •本体裏に40pinコネクタがある • 配列はRaspberry Pi 互換
• ただしRPiに直結は不可 • 筐体が干渉する • 3.3Vがデフォルトで出力方向 15
Wio Terminalの拡張コネクタ 2020/9/22 Wio Terminalのなんやかんや •拡張基板のサイズ • Wio Terminalの基板外形から作成 •
外形 • 穴位置 • ピンヘッダ位置 16
Wio Terminalの拡張コネクタ 2020/9/22 Wio Terminalのなんやかんや •単3・4電池拡張基板 • つくってみた。 • Fusion
PCBで5枚 17
Wio Terminalの拡張コネクタ 2020/9/22 Wio Terminalのなんやかんや •単3・4電池拡張基板 • つないでみた。 • けっこうでかい…
•測定アプリ(無線なし)で7時間くらい • 単3(eneloop)x2 18
感想 2020/9/22 Wio Terminalのなんやかんや •ピン数が多いので柔軟な設計が可能 • RPi互換ヘッダ • (M5Stackはピンが少なくて難しい) •高いピンヘッダが欲しい
• 日本では入手性に難あり • Battery Chassisの部品ほしい… 19
デバッガのつなぎ方 2020/9/22 Wio Terminalのなんやかんや 20
Wio Terminalのデバッグ事情 2020/9/22 Wio Terminalのなんやかんや •ATSAMD51のSWDが接続可能 • 出荷時書き込み用パッド • デバッグ用コネクタ
(v1.2以降) •RTL8720DNのSWDは未接続 • 頑張って引き出せなくもないが 結構難しい 21
Wio Terminalのデバッグ事情 2020/9/22 Wio Terminalのなんやかんや •デバッグ用コネクタ • 7月頃入荷分くらいから • 0.5[mm]x10ピン
FFCコネクタ • FFC+FFC変換基板でデバッガに接続 • どちらもAmazonやaitendoで買える 22
Wio Terminalのデバッグ事情 2020/9/22 Wio Terminalのなんやかんや •SWDを使用可能なデバッガで接続 • OpenOCD • J-Link
•普通に デバッグ可能 • 便利! 23
QSPIフラッシュの使い方 2020/9/22 Wio Terminalのなんやかんや 24
QSPIフラッシュ 2020/9/22 Wio Terminalのなんやかんや •4[MiB]のフラッシュ •ATSAMD51に接続 25
アクセス方法 2020/9/22 Wio Terminalのなんやかんや •ATSAMD51のブートローダー • QSPIフラッシュの読み書き機能無し •Arduino内蔵ライブラリ • QSPIフラッシュの読み書き機能なし
→実装するしかない 26
QSPIフラッシュに置けるもの 2020/9/22 Wio Terminalのなんやかんや •データ •プログラム • ATSAMD51は QSPIフラッシュ上のプログラムを直接実行できる 27
ExtFlashLoader 2020/9/22 Wio Terminalのなんやかんや •つくってみた •Wio Terminal用のQSPIフラッシュ・ドライバ • ArduinoのプログラムからQSPIの読み書き •https://github.com/ciniml/ExtFlashLoader
28
ExtFlashLoader 2020/9/22 Wio Terminalのなんやかんや •サンプル • DownloadFromSerial • USBシリアル経由でPCからQSPIフラッシュにデータを書き込む •
LaunchExtFlash • QSPIフラッシュ上のプログラムを実行する • WriteSampleMenu • サンプルのメニューアプリをQSPIフラッシュに書き込む 29
メニューアプリ 2020/9/22 Wio Terminalのなんやかんや •QSPIフラッシュ上で動作 •TFカード上のバイナリを ATSAMD51内蔵フラッシュに書き込み • メニューアプリはQSPI上なので 内蔵フラッシュを書き換えられる
30 内蔵フラッシュ QSPIフラッシュ アプリA メニュー アプリ TFカード アプリB アプリC アプリD
メニューアプリ 2020/9/22 Wio Terminalのなんやかんや 31 •メニューから アプリを選択 • アプリ書き込み •
アプリ起動 •メニューを起動 • ボタンを押しながら リセット
メニューアプリ 2020/9/22 Wio Terminalのなんやかんや 32 •M5Stackにもこういうのありますね •とりあえずWio Terminalでも 技術的に可能ということは示せた
その他 2020/9/22 Wio Terminalのなんやかんや 33
他作ったもの 2020/9/22 Wio Terminalのなんやかんや 34 •タイマー割り込みライブラリ • https://github.com/ciniml/SAMD51_Timer •バックライト制御ライブラリ •
https://github.com/ciniml/WioTerminal_BackLight •GROVEポートからUART出すコードサンプル • https://gist.github.com/ciniml/bd2bb4dea22a55c067ca6790ad0c 3eae
宣伝 2020/9/22 Wio Terminalのなんやかんや •技術書典9でWioTerminal本出してます • 今回唯一のWioTerminal本らしい • BOOTHでも頒布中 •内容は今日話したことの詳細
35
おしまい 2020/9/22 Wio Terminalのなんやかんや 36