1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Adafruit NRF52840 ItsyBitsyでUSBシリアルが使えなくて困った話

Posted at

初めに

最近BlueToothやらWi-Fiやらで遊びたい場合にはM5Stackとかがほとんど完成してて気楽に使える。が、実際組み込もうとするとまあいろいろと大変である。作りたいものはキッチンタイマーであったとしても頻繁に充電しなきゃいけないとか、電源切り忘れるとあっさり電池がなくなるとか。

そんなわけでもないんだけど、小さくてBlueToothが使えて低消費電力でArduinoでなんとなく開発ができるボードが欲しかった。で勝ったのが、Adafruitの小さいやつ。

いつものように、これ

main.cpp
# include "Arduino.h"

void setup() { Serial.begin(115200); }

void loop()
{
	Serial.println("Hello world");
} 

コンパイルしてみると、なんと、通らない。

$ pio run
....
Linking .pio/build/adafruit_itsybitsy_nrf52840/firmware.elf
.pio/build/adafruit_itsybitsy_nrf52840/src/main.cpp.o: In function `setup':
main.cpp:(.text.setup+0xc): undefined reference to `Serial'
main.cpp:(.text.setup+0x6): undefined reference to `Adafruit_USBD_CDC::begin(unsigned long)'
.pio/build/adafruit_itsybitsy_nrf52840/src/main.cpp.o: In function `loop':
main.cpp:(.text.loop+0xc): undefined reference to `Serial'
collect2: error: ld returned 1 exit status

「なんでだろう、なんでだろう」?!踊りたくなってきた。知ってる人はもう常識だよね、きっと!

Adafruitで売ってるものだからブートローダの問題ではないはずだ。そもそもリンクできてないんだから。

おまじないを1行

# include <Adafruit_TinyUSB.h> // for Serial

これをインクルード文の適当なところに追加して改めてコンパイル。

$ pio run
Linking .pio/build/adafruit_itsybitsy_nrf52840/firmware.elf
Checking size .pio/build/adafruit_itsybitsy_nrf52840/firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [          ]   2.9% (used 7128 bytes from 248832 bytes)
Flash: [=         ]   5.1% (used 41580 bytes from 815104 bytes)
========================= [SUCCESS] Took 0.92 seconds =========================

はい、できました!シリアルモニタが使えました。これで開発進みます。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?