dsj541kghのアイコン画像
dsj541kgh 2025年09月23日作成 (2025年09月23日更新)
セットアップや使用方法 セットアップや使用方法 閲覧数 303
dsj541kgh 2025年09月23日作成 (2025年09月23日更新) セットアップや使用方法 セットアップや使用方法 閲覧数 303

SPRESENSEのSerial2受信バッファ容量の変更方法について

はじめに

Serial2で受信した容量の大きいデータを継続してSDカードに保存する際、SD.flush中に受信バッファ以上のデータを受信するとはみ出た分が欠損します。Spresenseの送受信バッファはデフォルトで256byte(Arduino環境)となっていますが、これを拡張することで解決することもあります。
大まかな流れとしては、公式ページのSpresense Arduino board package ローカルパッケージの作成に示された通りではありますが、すぐ忘れそうなので手順をメモしておきます。

環境

OS:Windows 11 Home
Arduino 2.3.6
Spresense SDK 3.4.4

作業手順

まずはターミナル(管理者)を開きます。windowsボタンを右クリックでターミナル(管理者)が選択できます。
何も考えずに以下の通りUbuntu-20.04をインストールします。インストール最後にユーザ名とパスの設定を要求されるので設定します。

wsl --install -d Ubuntu-20.04

インストール終わったら以下の通り起動して、パッケージのアップグレードをします。

wsl -d Ubuntu-20.04

終わったら、installツールをダウンロードして展開します。

sudo apt update sudo apt upgrade wget https://raw.githubusercontent.com/sonydevworld/spresense/master/install-tools.sh bash install-tools.sh source ~/spresenseenv/setup

適当なエディタで.bashrcファイルの末尾に「source ~/spresenseenv/setup」を追記すると次使うときに助かることがあるかもしれないです。

sudo nano .bashrc 末尾に source ~/spresenseenv/setup 追記

そのあとSpresense SDK リポジトリからソースコードをダウンロードします。結構時間かかります。

git clone --recursive https://github.com/sonydevworld/spresense.git git clone https://github.com/sonydevworld/spresense-arduino-compatible.git

終わったら、カレントディレクトリをspresense-arduino-compatibleに移動してメインコアのmenuconfigを開きます。

cd spresense-arduino-compatible ./tools/prepare_arduino.sh -S ~/spresense -c spresense -d disable -M SDK -p

開くと以下のようなの画面が出てきて、
Device Drivers→Serial Drivers Support→UART2 Configuration→(256)Receive buffer size
の流れで選択すると、256byteから任意の容量に変更できます。
menuconfig
その後、saveして、menuconfigからExitします。
サブコアも開いて同様に変更します。

./tools/prepare_arduino.sh -S ~/spresense -c spresense_sub -d disable -M SDK -p

終わったら、以下の通りmakeします。

make

すると以下の4ファイルがspresense-arduino-compatibleディレクトリの中にできます。
./out/package_spresense_local_index.json
./out/staging/packages/spresense-v*.._local.tar.gz
./out/staging/packages/spresense-tools-v*.._local.tar.gz
./out/staging/packages/spresense-sdk-v*.._local.tar.gz
さて、これをwindowsのエクスプローラーから触りたいです。
以下の通りのアドレスをエクスプローラーに打ち込みます。

\\wsl.localhost\Ubuntu-20.04\home\[自分が設定したユーザ名]\spresense-arduino-compatible

すると、上記4ファイルが確認できるので、まずは.jsonファイルのみコピーして、以下の領域に貼り付けます。Arduino15直下にoutフォルダがなければ作ってください。

C:\Users\[windows環境のユーザ名]\AppData\Local\Arduino15\out

残り3つの.tar.gzファイルは以下のフォルダにコピペします。

C:\Users\[windows環境のユーザ名]\AppData\Local\Arduino15\staging\packages

Arduino IDEを起動して、ファイル→基本設定→追加のボードマネージャーのURLに以下を追加します。

file:///C:/Users/[windows環境のユーザ名]/AppData/Local/Arduino15/out/package_spresense_local_index.json

OKした後、いったんArduino IDEを終了してまた開き直して、ボードマネージャーの検索窓に「Spresense」と入力すると「Spresense local Board」が一覧に表示されインストールできるようになってます。
これをいつも通りインストールすると、ツール→ボードの選択画面から「Spresense local」が選択でき、受信バッファマシマシの設定で開発ができるような気がします。

ログインしてコメントを投稿する