LoginSignup
5
1
記事投稿キャンペーン 「2024年!初アウトプットをしよう」

WebBluetooth APIを用いたBLE通信で21文字以上のデータをPCから送れなかったことに関するメモ

Last updated at Posted at 2024-01-08

結論

  • 2024/01/08現在において、writeValueメソッドならびにwriteValueWithoutResponseメソッドを用いて20byte以上のデータを送信できない。
  • chromiumへのバグ報告を確認する限りだと修正はされていない。

気付いたきっかけなど

事象に気づいた際の情報をまとめます。

概要

  • Chromeフロントエンドからmicro:bitに50文字程度の文字列を連続送信するコードを書こうとしたときに事象に気づいた
  • AndroidアプリのBLEScannerからmicro:bitのCharaに文字列データを送った際には正常に受信できていた。BLEScannerは下記からインストール可能

詳細

こちらにまとめました。ざっくりと内容を要約すると

  • フロントエンドとmicro:bitを通信しようとしたときに21文字以上送れなかった。
  • 文字数を変更して検証したところ、20文字は送信できたけど21文字以上はだめだった。
  • 端末に搭載されているBLEはそれぞれBLE 5.1以上あった
  • PCはWindows 11 Homeで、micro:bitはV2.21

その他備考

  • writeValueメソッドに関してはすでに非推奨となっており、そもそも使用が推奨されていない。

  • 詳細欄のスタック・オーバーフローでも記述したが、PCもmicro:bitもBLE 5.0以上対応なため、データの送信量としてはBLE 4.0の2オクテット(16byte)の成約には引っかからない。また、BLEScannerではデータ送信できているため、受信側のmicro:bitは正常に動作している。
    BLE仕様の詳細はこちら。「MTU」や「Maximum Transmission Unit」というワードで検索すると早いかも。

その他資料

5
1
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
5
1