この記事はMbed Advent Calendar 2017の8日目の記事です。
BLEマイコンnRF52搭載のミニ基板「斑鳩」の試作について書きます。「斑鳩」はオープンソースハードウェアです。今はまだ試作段階ですが、そのうちイベント等で頒布するかも。12/16(土)・17(日)開催のNT加賀2017で展示します。
構想
- nRF52-DKはデカいし、そもそも技適取れてないから電波吹けない。
- といって、BLE Nano V2は使えるピン数少ない。
- Adafruit Feather nRF52 Bluefruit LEもいいけど、Arduinoかぁ。
- 技適取れてるモジュール使って手ごろなサイズの基板作ろうぜ!
ということで、次のような仕様のボードを考えました。
- BLEマイコンnRF52832搭載 (Bluetooth 4.2 / ARM Cortex-M4F)
- 技適取得済みnRF52832モジュール Liard BL652を使用
- Arduino Pro Miniピン互換 (GR-KURUMIやGR-CITRUSとも共通)
- nRF52-DKの開発環境(mbedやnRF5 SDK)で開発
- とりあえず、BLE Nano V2のDAPLinkボードをアダプタとして使う
- 300mAのLDO、3色のLED、32.768kHzサブクロック、リセットスイッチを搭載
設計
Eagleで回路図とパターンを設計しました。両面基板です。こんな小さい基板を設計するのは初めてです。今まで馬鹿にしてたAutorouterに頼りました(^^)
開発環境 (mbed)
- mbed Compiperのプラットフォーム選択でNordic nRF52-DKを選びます。
- BLE Nano V2のDAPLinkボードと斑鳩を下図ように結線します。
- あとは、ふつうにmbedの要領で開発します。
Lチカ
まずは簡単なLチカから。
mbedで下記のようなコードを書きました。
#include "mbed.h" DigitalOut myled1(LED1); // Blue DigitalOut myled2(LED2); // Yellow DigitalOut myled3(LED3); // Red int main() { while(1) { myled1 = 1; wait(0.5); myled2 = 1; wait(0.5); myled3 = 1; wait(0.5); myled1 = 0; wait(0.5); myled2 = 0; wait(0.5); myled3 = 0; wait(0.5); } }
冒頭の写真のようにオンボードの3色のLEDが点灯することが確認できました。
課題
- まだLチカしかできてないので、ちゃんとBLEの電波を飛ばす。
- 書き込みにBLE Nano V2のDAPLinkボードが必要というのはダサすぎる。
- mbedチップ搭載のUSBアダプタを自前で作れるか?
- SEGGER Embedded Studioでの開発環境も構築する。
- 設計データとドキュメント一式をGithubで公開する。
- 量産してイベントで頒布する。