Local ELTRESの運用に伴い、ELTRESデバイスのソフトウェア開発環境を構築しています。手順を整理するためのメモとして以下をまとめました。
前提
ここではCRESCO社の拡張ボードとRISNER社のSPEXELを利用することを前提としています。
できるだけこの両者を同一のソフトウェアで運用したいというモチベーションがあるため、片側だけだと不要な部分もあるかもしれません。
利用環境としてWindows + WSL上のUbuntu LinuxおよびHyper-V上のUbuntu Linuxで検証しています。基本は前者で検証しています。ここではWSLは用意済みであるものとします。
またSpresense SDKのバージョンは3.4.3以降がよいと考えています。過去資産の継承にはそれ以前のバージョンという選択もありそうなのですが、3.4.3以降とそれ以前でファームウェアの扱いが変わっています。3.4.3以降はファームウェアがSDKに含まれていますが、それ以前は含まれていないようです。一方でSONYのページからはもう古いファームウェアをダウンロードできないようです。
RISNER社から提供していただいたサンプルコードの実行手順については研究室メンバー専用に共有しています。サンプルコード自体が購入者にのみ配布されるもののようなので、一般記事化は適さないと考えました。
手順
まずは以下の手順で諸々のセットアップを行います。この時点でのspresense sdkは最新版が3.4.6で、これを利用しています。
cd ~- 話の前提としてホームディレクトリを基準とします
- 以下の操作はサブディレクトリ下でも可能です
wget https://raw.githubusercontent.com/sonydevworld/spresense/master/install-tools.shbash install-tools.sh- ここでspresenseenvというフォルダが生成されますが、これは常に~/spresenseenvとなります。作業しているサブディレクトリ下には生成されないので、ない!などと慌ててはいけません(私はこれで慌てました……)
- source ~/spresenseenv/setup
- 毎回必要になるので、~/.bashrcに追記するなどした方がよい
git clone --recursive https://github.com/sonydevworld/spresense.git- これで~/spresenseフォルダが生成される
- 特定のバージョンを指定したい場合には「
git clone -b v2.0.2 --recursive https://github.com/sonydevworld/spresense.git」のようにする(この例は2.0.2)
cd spresense/sdk./tools/config.py examples/eltres_lpwamake menuconfig- SPEXELの場合にはこれは必須ではありません(デフォルトがSPEXELになっている模様)
- Application Configuration→Spresense SDK→Externals→ELTRES SDK Library→ELTRES board selectionでCRESCOならAdd-on boardを、RISNERならSPEXEL boardを選ぶ
make./tools/flash.sh -c シリアルポート番号 nuttx.spk- WSLではシリアルポート番号はCOM?のようなWindowsのデバイスマネージャーで識別される文字列となります
- TeraTermなどのコンソールアプリでCOM?に接続
- bpsは115200です
eltres_lpwaで実行- 数分後にGNSS/GPS受信完了→送信
自動起動
デフォルトでは上の11ではnshが起動します。これはこれで必要なのですが、バッテリー動作させての実験ではシリアル通信できません。タブレット・スマホにつなげばできますが……(私も開発中はそうしています)。
上の8のmake menuconfig時に以下を行うことで自動起動できます。
- RTOS features→Tasks and Scheduling→Application entry pointおよびname
- デフォルト:spresense_main
- 変更例:eltres_lpwa_main(コマンド名でなくファイル名であることに留意)
参考資料
上は自分用メモですが、元となっている資料は以下の通りです。

