sakura.io モジュール(LTE)SCM-LTE-01 / SCM-LTE-Beta コマンドリファレンス
概要sakura.io モジュール(LTE)は，さくらインターネット株式会社が提供する「sakura.io」の sakura.io プラットフォームに，LTE 網を通じて接続するための専用通信モジュールです。本モジュール
をユーザの装置に組み込んでホスト MCU と接続すると、簡単なコマンドだけで sakura.io プラットフォームとデータの送受を容易に行うことができます。また，デジタル入出力と ADC 入力も備えて
おり， MCU がないユーザの装置でも本モジュールを用いて単純なデータの送受であれば行うことも可能です。
Figure 1

本資料について

ユーザ機器の MPU が sakura.io モジュールと通信するためのコマンドの仕様を記載しています。



ユーザ機器の設計の際には、本資料のほか、データシート／アプリケーションノートを十分に確認して設計を行ってください。



各コマンド使用の際には実行エラー処理などを適宜行い、異常状態を含め、十分な評価を行ってください。



本資料は改良のため予告なく全体、または 一部を変更する場合があります。あらかじめご了承 ください。

1 / 63目次ｂ
概要 .................................................................................................................................................. 1
本資料について ................................................................................................................................... 1
目次 .................................................................................................................................................. 2
代表的構成例.................................................................................................................................... 4
ブロック図 ............................................................................................................................................ 4制御インタフェース ................................................................................................................................ 5
概要............................................................................................................................................... 5
SPI インタフェース .............................................................................................................................. 5
I2C インタフェース.............................................................................................................................. 6
UART インタフェース(AT コマンドインタフェース) ..................................................................................... 7
GPIO モード ................................................................................................................................... 8
省電力制御 ..................................................................................................................................... 10
Active モード/DeepSleep モード選択 ......................................................................................... 10
省電力モード設定(v.1.4.0 以降，SCM-LTE-01 のみ) ..................................................................... 10
時刻同期 ......................................................................................................................................... 10
概要............................................................................................................................................. 10
データキュー ....................................................................................................................................... 11
概要............................................................................................................................................. 11
時刻情報の付与 ........................................................................................................................... 11
キューの大きさ................................................................................................................................ 12
送信キューの構造 .......................................................................................................................... 13
受信キューの構造 .......................................................................................................................... 15
2 / 63

コマンドシンタックス ............................................................................................................................. 16
コマンドの構成 ............................................................................................................................... 16
要求のシンタックス ...................................................................................................................... 16
応答のシンタックス ...................................................................................................................... 16
実行結果.................................................................................................................................. 17
コマンド定義 .................................................................................................................................. 18
一般コマンド .............................................................................................................................. 18
I/O 操作コマンド ........................................................................................................................ 23
データ送信コマンド ...................................................................................................................... 24
データ受信コマンド ...................................................................................................................... 38
ファイル受信コマンド .................................................................................................................... 42
管理コマンド .............................................................................................................................. 50
制約事項 ..................................................................................................................................... 60
ソフトウェアライセンス .......................................................................................................................... 61
注意事項 ......................................................................................................................................... 62
用途の限定 .................................................................................................................................. 62
屋外での使用 ............................................................................................................................... 62
コネクタ ......................................................................................................................................... 62
設置環境 ..................................................................................................................................... 62
改訂履歴 ......................................................................................................................................... 63

3 / 63

代表的構成例

sakura.io Service
SAKURA Internet Data Centersakura.io Platform

Internet
USER
System/Serv er

ストレージ

コントロールパネル

WebSocket
Outgoing Webhook
Incoming Webhook
MQTT Client
DataStore APIAWS IoT
Azure IoT Hub (α )Google Cloud Pub/Sub連携Publish

I2C, SPI,

SwitchLED

MPU

UART, GPIO

USER Dev ice
SensorSAKURA
Hybrid Connect

USER
System/Serv er

LTE Network

データ保存

連携サービスファイル配信sakura.io Module
SIM

LTE
Modem

Controller
ETC...

Figure 2

ブロック図
I2C

ANT (TRX)
LTE
ANT (RX)

Cat. 1SPI
CONTROL CIRCUITRYGPIO / ADC_IN

and

MODEM

PROPRIETARYPROTOCOL STACK

WAKE_IN
WAKE_OUT
MODE_IN
LED_OUTSIM
V_BATT

UART

LDO

RTC

LDO_OUTRESET

Figure 3
4 / 63

制御インタフェース
概要
本モジュールの制御は，I2C インタフェース、SPI インタフェース、または UART インタフェースに，ユーザがコマンドを与えることによって行うことができます。また，既存システムにおいて使用されているモデムのようなレガシーデバ
イスを，本モジュールにより置き換えることを念頭に置いた互換レイヤとして，UART インタフェースでは AT コマン
ドインタフェースを提供します。
本モジュールは，起動時における MODE_IN ピンのレベルに応じて，スレーブモードまたは GPIO モードのいず
れかで動作します。MODE_IN ピンのレベルを L にして本モジュールを起動させた場合本モジュールは GPIO モードとして動作し、H にして本モジュールを起動させた場合本モジュールはスレーブモードとして動作します。
スレーブモードで動作しているときは，本モジュールは I2C スレーブデバイスおよび SPI スレーブデバイスとして振る舞うほか，UART 入出力ピンを通じて AT コマンドインタフェースが利用できます。
スレーブモードで動作しているとき，どのインタフェースを用いても本モジュールは同一のコマンドにより制御することができ，利用できる機能にも違いはありません。ただし，同一のモジュールにおいて，2 つ以上の異なるインタフ
ェースを混在して使用した場合の動作は未定義です。いずれか 1 つのインタフェースのみを使用してください。
GPIO モードで動作している場合は，I2C，SPI，UART インタフェースは使用できません。

SPI インタフェース
SPI インタフェースは，本モジュールがスレーブモードで動作しているときのみ利用可能です。本モジュールは SPI ス
レーブデバイスとして動作し，動作モードは，CPOL=0，CPHA=0、ビットオーダーは MSB first、コマンドは先頭バイトから順に送出、最大 350kbit/s です。SPI_CS ピンをアサートすると，ユーザからのコマンド受け付けを開始します。書き込まれたコマンドを解釈すると，応答を返します。応答を完全に読み出すまでは，SPI_CS をデアサートしないでください。コマンドの書き込み中に SPI_CS をデアサートすると，当該コマンドの実行は中止されます。応答の読み出し中に SPI_CS をデアサートすると，応答内容は失われます。

コマンド書き込み

応答読み出しFigure 4

5 / 63I2C インタフェース
I2C インタフェースは，本モジュールがスレーブモードで動作しているときのみ利用可能です。本 I2C インタフェース
は Standard-mode で動作しており，最大 100kbit/s での通信が可能です。本モジュール内でプルアップ抵
抗は内蔵していません。本モジュールの I2C デバイスアドレスは 7 ビットで 4Fh です。デバイスアドレスは変更することはできません。
本モジュールへのコマンド発行は、ユーザ機器のホスト MCU からライトサイクルでコマンドの要求シーケンスを送信します。本モジュールは，ユーザからのコマンド受け付けて処理を開始します。受け取ったコマンドを解釈すると，応答シーケンスを返しますので、ユーザ機器のホスト MCU からリードサイクルで読みだしてください。この時応答をすべて読み出すまでは，ストップコンディションを与えないでください。

Figure 5

6 / 63

UART インタフェース(AT コマンドインタフェース)
UART インタフェースでは本モジュールの制御用に AT コマンドインタフェースを提供しています。
AT コマンドインタフェースは，AT コマンドに準じた独自の文字列コマンドにより本モジュールを制御するためのインタフェースです。AT コマンドインタフェースは，本モジュールがスレーブモードで動作しているときのみ利用可能です。
このインタフェースは，AT コマンドによりモデムや他社製通信モジュールなどと接続する既存システムとの互換レイ
ヤとして提供するものであり，新規設計での使用は推奨されません。
ユーザからの AT コマンドの書き込みは，本モジュールの UART_RX に対して行います。コマンドに対する応答は，
本モジュールの UART_TX から出力されます。UART_RX，UART_TX ともに，データ 8 ビット，パリティなし，ス
トップビット 1 ビットの調歩同期信号であり，ボーレートは 115200 ボーで固定です。これらの設定は，変更することができません。
AT コマンドは，「AT*CMD=」の文字列に続き，コマンドシンタックスの章で定義する「要求」を 16 進の文字列として表したもの，およびこれに続くデリミタから構成されます。デリミタは CR（0Dh）または LF（0Ah）であり，いずれかを受信した時点で書き込まれた AT コマンドを解釈します。AT コマンドに対する応答は，「*CMD:」の文字列に続き，コマンドシンタックスの章で定義する「応答」を 16 進数文字列として表したもの，および CR LFを返します。続けて，成功の場合には「OK」，AT コマンドになんらかのエラーがあった場合には「ERROR」の文字列に続き，CR LF を返します。「OK」「ERROR」はあくまでも AT コマンドとしての OK/エラーで、コマンドの実行結果としてのものではありません。
要求例
AT*CMD=030003[LF]

Figure 6
応答例*CMD:0108543732BD58010000BC[CR][LF]
OK[CR][LF]

Figure 7

7 / 63

GPIO モード
GPIO モードでは，GPIO_0～GPIO_3 の各ピンを入力ピンまたは出力ピンとして、また ADC0,1 をアナログ値
入力として動作させることができます。各 GPIO ピンの動作モードはピンごとに独立して設定することができ，設定値は sakura.io プラットフォーム側からの要求によって変更することが可能です。本モジュールの起動時，
GPIO_0～GPIO_3 の各ピンは入力モードで動作します。

入力モード
GPIO ピンを入力モードにした場合，いずれかのピンに印加されている信号レベルが変化した際に全ピンに関して自動的にメッセージを生成し，sakura.io プラットフォームへデータを送信します。変化を検出するのは GPIO
ピンのみで、ADC ピンのアナログ値は変動しても検出されません。
sakura.io プラットフォームに送信されるデータは，GPIO はそれぞれピン番号・入出力設定・変化後の信号レベル・変化した日時、ADC はそれぞれピン番号・計測アナログ値・サンプルした日時が、含まれます。
信号変化後の sakura.io プラットフォームへの到達時間や、信号変化間隔通りの sakura.io プラットフォームへの到達の保証はされません。また、連続した変化信号に対しては一部しか変化を検出できないことがあります。最終的な信号値と sakura.io プラットフォームへ送信した最終データは一致しない可能性があります。
入力データはある程度キューイングされますが、通信回線状態やキューの開き具合によるデータ破棄がありうるため、確実な到達は保証されません。またデータの到達を確認する手段は用意されていません。必要な場合はユーザ側での信号の送受で実現するか、信号上でデータが到達しなかった場合にも問題が生じないようにユーザ機器を設計する必要があります。

出力モード
ピンを出力モードにした場合，sakura.io プラットフォーム側からの要求に応じてピンの出力レベルを変化させることができます。出力される値は H と L のいずれかとなり，メッセージを受信した時点でピンの出力値が変更されます。その際、sakura.io プラットフォーム側からのメッセージを受け取った後、現在の全ピンの状態を sakura.io
プラットフォームへ返送します。
sakura.io プラットフォームに送信されるデータは，GPIO はそれぞれピン番号・入出力設定・変化後の信号レベル・変化した日時、ADC はそれぞれピン番号・計測アナログ値・サンプルした日時が、含まれます。

8 / 63sakura.io プラットフォーム側でデータセット後の到達時間や、データセット間隔通りの到達間隔の保証はありません。また、連続的な sakura.io プラットフォームからのデータセットに対して GPIO 出力信号の変化の間隔は未定義です。
通信回線状態やキューの開き具合に よるデータ破棄がありうるため、確実な到達は保証されません。またデータの到達を確認する手段は用意されていません。必要な場合はユーザ側での信号の送受で実現するか、信号上でデータが到達しなかった場合にも問題が生じないように、ユーザ側で設計する必要があります。
GPIO ピンで LED 等のデバイス を駆動する場合はそのまま駆動はできませんので、ドライブ回路を設計頂きご利用ください。

9 / 63

省電力制御Active モード/DeepSleep モード選択
WAKE_IN 端子の状態により Active モードと DeepSleep モードを選択することができます。

Active モード

WAKE_IN 端子
Hi

説明
モジュールを動作させます。
WAKE_IN を Lo にすると現在の処理内容、状況を問わず即 DeepSleep モードへ移行します。この際に処理中

DeepSleep モード

Lo

内容等は破棄されます。
モジュールの機能を停止し消費電力を抑えます。
WAKE_IN を Hi にするとモジュールが再起動し、Activeモードへ移行します。
Table 1

省電力モード設定(v.1.4.0 以降，SCM-LTE-01 のみ)
Active モード時に選択された省電力モードに従い，電力制御を行います。
説明

通信可否

省電力制御無効モード

省電力制御を行いません。(デフォルト)可

自動スリープモード

通信可能な状態で待機消費電力を削減します。

可

通信状態によって，RUN モードと SLEEP モードの間を自動的に遷移します。
電力制御の為、コマンド処理時に無効時よりも遅延が発生します。また、接続状態、電波強度の情報更新がリアルタイムではな
く、10 分に一度、もしくはデータ送受が発生したタイミングになります。

Table 2

時刻同期
概要
本モジュールは sakura.io プラットフォームと時刻の同期を行い現在時刻を保持します。
下記のタイミングで時刻の同期は行われます。
・起動、リセット復帰、Deepsleep 復帰後、sakura.io プラットフォームに接続したとき
・起動後一時間に一回

10 / 63

データキュー
概要
本モジュールには，本モジュールと，sakura.io プラットフォーム間で授受されるデータを一時的に保持するための記憶領域として，送信キューと，受信キューが内蔵されています。
送信キューは，ユーザ機器から sakura.io プラットフォームに送信したいデータ（以下，上りデータと呼びます）
を受け付けるためのキューで，ユーザ機器は上りデータを随時追加することができます。ユーザ機器からの送信要求でキューに溜まったデータを sakura.io プラットフォームに送信することができます。
受信キューは，sakura.io プラットフォームから，デバイスに対して送達されたデータ（以下，下りデータと呼びます）を一時的に保持するためのキューで，ユーザ機器は，ここから下りデータを読み出すことができます。

時刻情報の付与
キューが介在することにより，データの伝達要求が発生した時刻と，当該データが実際に送達される時刻には，予測不可能な差異が生じ得ます。この解消を目的として，デバイスと，sakura.io プラットフォーム間で授受されるすべてのデータには，時刻情報が付与されます。
上りデータに関しては，データが本モジュールの送信キューに追加されたときから，sakura.io プラットフォームへの送達を開始するときまでの時間が自動的に管理され，キューによる遅延にかかわらず，当該データがいつ発生したものなのかを sakura.io プラットフォーム側で知ることができます。また，データを本モジュールの送信キューに追加した時点ですでに既知の遅延があった場合に備え，キューへのデータ追加の際に任意のオフセット時間を指定することもできます。
下りデータに関しては，sakura.io プラットフォームから本モジュールにデータが到着してから，当該データをユー
ザ機器が実際に受け取るまでの時間が自動的に管理され，キューによる遅延にかかわらず，いつ到着したもの
なのかをユーザ機器側で知ることができます。

11 / 63

キューの大きさ
キューの大きさは，Figure 3 キューの最大保持数のとおりです。
1 つのデータは、・Ch : 1 バイト
・Type : 1 バイト
・Data : 8 バイト
・Time : 8 バイトの 18 バイトで構成されます。
ただし，内部処理の状況により，キューイングできる見かけ上のデータ数がキューの最大数よりも少なくなる場合があります。
キューの最大保持数
送信キュー

32 データ

受信キュー

32 データTable 312 / 63

送信キューの構造
送信キューは，図のような構成で実装されています。

Figure 8
ユーザ機器から sakura.io プラットフォーム側へのデータ送信を行う場合には，本モジュールのコマンドインタフェースを通じて，Tx enqueue コマンドを使って送信キューへのデータ追加を要求することができます。送信キューに空きがある場合は，当該データはキューに追加されます。送信キューに空きがない場合は，追加要求はエラーとなりますが，すでにキューイングされているデータには影響ありません。
送信キューに溜められたデータは，即座には sakura.io プラットフォーム側には送信されず，明示的に Txqueue send コマンドを与えたときに送信が試みられます。Tx queue send コマンドが実行されると、まずこの時点でキューに入っている全データを送信対象に指定します。これ以降にキューに追加されたデータは今回のコ
マンドでは送信されません。送信処理は最大 16 個までのデータをひとまとめにして sakura.io プラットフォームへの送信が行われます。まず送信キューから最大 16 個のデータを取り出して、一旦送信用にバッファに確保し、ひとつのセットとして sakura.io プラットフォームへ送信を行います。正常に送信完了すると、17 個目以降のデータについて同様に送信処理を行い、送信対象にしたデータをすべて送信完了すると送信処理は終了します。
送信が失敗した場合には送信用のバッファにデータは確保したまま送信処理は終了し、Get Tx status で状態を取得すると送信エラーが応答される状態になります。この状態で Tx queue send コマンドを再度発行するとキューからはデータを取らずに送信用のバッファにあるデータの再送を試みます。これを繰り返すことで再度送信リ
トライが可能となります。

13 / 63

送信処理が送信キューから最大 16 個のデータを取り出して一旦送信用にバッファに確保した段階で送信キュ
ーには空きができるので、送信処理が完了していないタイミングでも、最大 16 このデータをキューに追加することができます。
なんらかの理由により，送信キューに滞留しているデータを送信せずに消去したい場合には，送信キュー削除コ
マンドにより行うこ とができます。また，送信キューの 記憶域は揮発性であり， 電源を遮断、リセット、
Deepsleep モードへの移行を行った場合には保持されません。
ユーザ機器から sakura.io プラットフォーム側へのデータ送信経路の例外として，送信キューを通さずに即座に
sakura.io プラットフォーム側へのデータ送信を試みる，Tx immediately コマンドも用意されています。Tx
immediately コマンドと，送信キューは併用することができ，Tx immediately コマンドの実行は，送信キューの状態には影響を与えません。

14 / 63

受信キューの構造
受信キューは，図のような構造で実装されています。

Figure 9
sakura.io プラットフォームからデバイスに対して送達されたデータは，本モジュールの受信キューに蓄積されます。
受信キューにデータがあるとき，ユーザ機器が本モジュールに対して受信読み出しコマンドを与えると，受信キューの先頭にあるデータが返され，当該データは受信キューから削除されます。受信キューからの削除を希望しない場合は，受信キューの状態に影響を与えずに，受信キューの先頭にあるデータを参照のみするコマンドを使用することができます。受信キューに空きがない場合は，sakura.io プラットフォーム側からの送達データは失われますが，すでにキューイングされているデータには影響ありません。
なんらかの理由により，受信キューに滞留しているデータを受信せずに消去したい場合には，受信キュー削除コ
マンドにより行うこ とができます。また，受信キューの 記憶域は揮発性であり， 電源を遮断、リセット、
Deepsleep モードへの移行を行った場合には保持されません。
受信キューに 1 つ以上のデータがある場合は，WAKE_OUT 信号がアサートされ続けます。受信キューのデータが空になると，デアサートされます。この出力は，ユーザ機器の MCU に対し，sakura.io プラットフォーム側か
ら到達したデータが受信キューに存在することを知らせる信号として，またユーザ機器の MCU がスリープ状態にある場合には，ウェイクアップさせるための信号として使用することができます。

15 / 63

コマンドシンタックス
コマンドの構成
SPI/I2C/UART 問わず同じコマンドシンタックスを使用します。
コマンドは，「要求」と「応答」から構成されます。ユーザが，何らかの結果を期待して本モジュールに対して「要求」を与えると，本モジュールは，当該要求を処理した結果としてユーザに対して「応答」を返します。
要求は，1 バイトの要求種別と，1 バイトの引数データ長，および 0 バイト以上の引数データから構成される
可変長のバイト列です。
応答は，1 バイトの実行結果と，1 バイトの応答データ長，そして 0 バイト以上の応答データから構成される可変長のバイト列です。
要求および応答のシンタックスは，以下のとおりです。

要求のシンタックス
要求種別
Q

引数データ長
N

A (0)

A (1)

引数データ

Figure 10…

A (n-1)

パリティ
P

D (m-1)

パリティ
P

応答のシンタックス
実行結果
S

応答データ長
M

D (0)

D (1)

応答データ

Figure 11…

引数データまたは応答データが多バイトで構成されるデータ型（整数または浮動小数点の値）である場合は，リトルバイトエンディアンとして扱い，下位バイトから順にバスへ送信します。パリティ P の計算方法は，要求であれば Q から A (N-1)までの，応答であれば S から D (M-1)までの値を 1 バイトで排他的論理和を取った値とします。
例： Q⊕N⊕A(0)⊕A(1)⊕・・・⊕A(N-1)=P

16 / 63

実行結果
応答バイト列のうち実行結果 S は，要求の処理結果を示します。S が取り得る値とその大まかな意味について
は，Table 4 のとおりです。詳細な応答の意味については各コマンドの項にて説明します。
S の値が 01h の場合は，与えられた要求種別に対して規定されている応答データ長を返します。それ以外の場
合については， S に続き，応答データ長 00h，パリティ P の 3 バイト固定で応答します。
S の値
00h

意味

01h

要求のシンタックスに異常がなく要求が正常に処理されたことを示します。

02h
03h
04h
05h
06h
07h

予約
与えられた要求のパリティ値が異常であったことを示します。
与えられた要求の要求種別が未定義であったことを示します。
与えられた要求にその他のエラーがあったことを示します。これには，引数の長さの異常，範囲異常などが含まれます。
与えられた要求を実行したものの，結果としてエラーになったことを示します。
アンロックコマンドによるロック解除が行われていない状態でロック解除が必要なコマンドが発行されたことを示します。
要求された操作が既に進行中であり，新たに操作を開始することができないことを示します。
Table 417 / 63

コマンド定義
この項では，コマンドの要求シンタックスと応答シンタックスを定義します。

一般コマンド接続状態の取得

Get connection status
要求
応答

要求種別Q

引数データ長N

パリティP

01h

00h

p

実行結果S

応答データ長M

応答データD

パリティP

s

01h

D

p

Figure 12
本モジュールの sakura.io プラットフォームへの接続状態を応答します。

応答データ D は以下の値を取ります。
D値

意味

00h

LTE 網接続後の sakura.io プラットフォームへの接続処理中です。

01h

圏外、モジュール未登録、失効、SIM 抜け、などの LTE 網に接続できないエラーの際に発生します。
圏外の場合は提供エリアに復帰次第自動的に再接続処理が行われます。圏外でないことが確認できているものの、この値になる場合は、エラー要因を取り除き、再度接続を試みてく

02h
03h
80h

ださい。
接続エラー。LTE 網には繋がるものの sakura.io プラットフォームの認証 NG になった状態です。sakura.io プラットフォームへのモジュールの登録を確認してください。
意図しない切断が発生しました。
本モジュールのリセットを行い、再度接続処理を試みてください。
エラーなし。sakura.io プラットフォームへ接続完了しデータが送受できる状態です。

Table 5ファームウェアバージョン v1.4.0 現在，sakura.io コントロールパネルへ本モジュールが登録されていないことによる接続失敗は圏外(01h)として扱われます。
モジュール登録後、認証できるようになるまで多少時間かかるときがあります。しばらく時間をおいて再度試してみてください。
実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。
接続状態の正常性を表すものではありません。
18 / 63

02h
03h
04h

与えられた要求のパリティ値が異常であったことを示します。
このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを示
します。

05h

このとき応答データはなく M=00h となります。
使用しません

06h

使用しません

07h

使用しません
Table 619 / 63電界強度の取得

Get signal quality
要求
応答

要求種別Q

引数データ長N

パリティP

02h

00h

p

実行結果S

応答データ長M 応答データD パリティP

s

01h

D

p

Figure 13
本モジュールが接続している無線基地局からの受信品質を応答します。応答データ D の値は，そのときの受信信号品質に応じて，以下の値を取ります。
D値
00h

意味
圏外
モジュール未登録や失効などによるものも含みます。

01h
02h
03h
04h
05h

LTE 電波状況や、モジュールの登録状況を確認して再接続してください。
非常に弱い
弱い
中くらい
強い
非常に強い

Table 7

実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。

02h
03h
04h

受信品質状態の正常性を表すものではありません。
与えられた要求のパリティ値が異常であったことを示します
このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを示
します。

05h

このとき応答データはなく M=00h となります。
使用しません

06h

使用しません

07h

使用しません
Table 820 / 63現在時刻の取得

Get date time
要求
応答

要求種別Q

引数データ長N パリティP

03h

00h

実行結果S

応答データ長Ms08hp
応答データD
D0[LSB]

D1

D2

D3

D4

パリティP
D5

D6

D7[MSB] p

Figure 14

応答データ D として、本モジュールが有している現在時刻を，64 ビットの UNIX 時刻形式（1970 年 1 月 1
日 00 時 00 分 00 秒 UTC を起点とした秒数）の 1000 倍 (ミリ秒単位) で応答します。
実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。

02h

与えられた要求のパリティ値が異常であったことを示します

03h
04h

このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを示
します。

05h
06h
07h

このとき応答データはなく M=00h となります。
エラー。時刻が sakura.io プラットフォームと同期していないときこの値を返します。
このとき応答データはなく M=00h となります。
使用しません
使用しません
Table 921 / 63

エコーバックテスト

Echo back test
要求
応答

要求種別Q

引数データ長N

0Fh

n

実行結果S

応答データ長Msn

引数データD
D0

…

…

…

D0

…

…

…

…

パリティP
…

…

Dn-1

p

…

…

Dn-1

p

応答データD…

パリティP

Figure 15
要求にて与えられた任意長の引数データ D を，そのまま応答する試験用のコマンドです。引数データ長 nは，少なくとも 1 としてください。このコマンドを実行しても，本モジュールの動作には影響を与えません。
実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。

02h
03h
04h

エコーバックされるデータの正常性を表すものではありません。
与えられた要求のパリティ値が異常であったことを示します
このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを
示します。

05h

このとき応答データはなく M=00h となります。
使用しません

06h

使用しません

07h

使用しません
Table 1022 / 63

I/O 操作コマンド
ADC 電圧値取得

Read ADC
Q
要求
応答

N

10h
S

01h
M

s

02h

引数データ
ch
応答データ
V(0) V(1)引数データ ch で指定された ADC 端子の電圧を読み取り，その値 V で応答します。ch として有効な値
は 00h または 01h で，それ以外の値を指定した場合の動作は未定義です。V の 1LSB は，100 [μV] に相当します。
※ このコマンドは削除予定ですので使用しないでください

23 / 63データ送信コマンド
送信キューへの追加

Tx enqueue
Time offset付
要求種別Q

要求

応答

引数データ長N

引数データ
ch

20h

12h

実行結果S

応答データ長M パリティP

ch

s

00h

データD

type
type

D0

…

Time Offset
T0

D7

…

T7

パリティP
p

p

Time offsetなし
要求種別Q

要求

応答

引数データ長N

引数データ
ch

20h

0Ah

実行結果S

応答データ長M パリティP

ch

s

00h

type

パリティP

データD

type
D0

…

D7

p

p

Figure 16
sakura.io プラットフォームへ送信するデータを，本モジュールの送信キューに追加するためのコマンドです。
引数 ch は，ユーザが任意に割り当てられるチャネル番号で，00h から 7Fh までの任意の値を使用することができます。80h 以上の値を指定することはできません。sakura.io プラットフォーム側でこのチャンネル番号とデータが紐づけられて取得できるので、送信データの分類分けなどユーザの目的に合わせて使用可能です。
type は，送信するデータの型を指定するための型指定子で，以下のいずれかの値とする必要があります。
データ D 型
符号あり 32bit 整数
sakura.io プラットフォーム到着時に 10 進のテキスト表記に変換されます。
符号なし 32bit 整数
sakura.io プラットフォーム到着時に 10 進のテキスト表記に変換されます。
符号あり 64bit 整数
sakura.io プラットフォーム到着時に 10 進のテキスト表記に変換されます。
符号なし 64bit 整数
sakura.io プラットフォーム到着時に 10 進のテキスト表記に変換されます。
32bit 浮動小数点数

type 値
69h
49h
6Ch
4Ch
66h

IEEE754 binary32 フォーマットで格納します。
sakura.io プラットフォーム到着時に 10 進の浮動小数点テキスト表記に変換されます。
完全な IEEE754 binary32 精度が必要な場合は「8 バイトの配列」での送信をお勧めします。
64bit 浮動小数点数

64hIEEE754 binary64 フォーマットで格納します。
sakura.io プラットフォーム到着時に 10 進の浮動小数点テキスト表記に変換されます。

24 / 63完全な IEEE754 binary64 精度が必要な場合は「8 バイトの配列」での送信をお勧めします。

62h

8 バイトの配列
sakura.io プラットフォーム到着時に 8 個連続した 16 進文字列に表記に変換されます。
例：
D(0) =01h、D(1) =02h、D(2) =03h、D(3) =04h、D(4) =05h、D(5) =06h、D(6) =07h、D(7) =08h の時、“0102030405060708”

Table 11
引数 D には，64bit 型データの値を、下位バイトから順に 8 バイト格納します。

32bit 型の値を格納する場合には，上位に 32bit 付加して 64bit データとし、64bit 型データと同様に格納する必要があります。上位 32bit の値は don’t care として扱われます。
また、8 バイト配列型の場合も同様に、必要データサイズが 8 バイト未満であってもダミーデータを付加し、8バイトのデータとして送る必要があります。

D(0) [LSB]

D(1)

D(2)

D(0) [LSB]

D（32 ビット値）
D(1)
D(2)

D（64 ビット値）
D(3)
D(4)
Figure 17

D(5)

D(6)

D(7) [MSB]

don’t careD(3) [MSB]
X
Figure 18

X

X

X

引数 T には，当該データが発生した時刻を，このコマンドが実行された時点を基準する 1 [ms] 単位の相対時間として指定することができます。
例として，T の値が 2,500 (09C4h) であるときは，当該データは，コマンドが実行された瞬間を起点として2.5 [s] 過去に発生したものであることを意味します。モジュールは Tx queue send コマンド発行後、各デー
タ毎に T にキューでの滞留時間を加えた合計時間 T’を計算しデータとセットで sakura.io プラットフォームへ送信します。sakura.io プラットフォームではデータの到着時間から T’を引いた時間をデータの発生時間として保持します。しかし、ネットワーク回線上での送信遅延や、LTE 圏外からの再接続処理での遅延などは補正されませんので、不特定時間のずれが発生します。確実な時間が必要な場合には別途ユーザ側で時間管理データを送受するなど補償処理を行ってください。
T の最大値は，7,776,000,000 (1 CF7C 5800h) で，最大で 90 日まで過去の情報を扱うことができます。
ただし，sakura.io プラットフォーム側の仕様として，T の値と送信キューでの滞留時間を合計した結果，データ発生時間が sakura.io プラットフォーム到着時間よりも 90 日を超える過去となったデータは受け容れを行わずに破棄します。90 日の判定は sakura.io プラットフォーム側でのみ行われます。破棄されたかどうかはモジュール側からは検出できません。90 日超の T をセットしたり、キュー滞留で 90 日超えた場合には、sakura.io プラットフォームでのデータ蓄積は行われませんが、本モジュールからはエラー無くデータの送信が行
われてポイントの消費が発生しますので注意してください。

25 / 63

Time offset（64 ビット値）
T(0) [LSB]
T(1)
T(2)
T(3)
T(4)
T(5)
T(6)
T(7) [MSB]
Figure 19
T は省略することが可能で，その場合は T の値として 0 が指定されたものとみなされます。また，T を省略した
場合の N は 0Ah となります。T の値として，範囲外の値が与えられた場合の動作は未定義です。また，未来の時刻を与えることはできません。
キューがオーバーフローした場合には，データ追加要求はエラーとなります。その場合，実行結果 S として 05hを返します。事前に Get Tx queue length でキューの空きを確認することをお勧めします。
Tx queue send コマンドでデータ送信中に Tx enqueue した場合、送られるかキューに残るかはタイミング
次第になります。確実な送信の為には、キューの空きの確認と、送信ステータスの確認を行ってください。
データ例

符号あり 32bit 整数
引数データ

Time offset付
要求
応答

要求種別Q

引数データ長N

ch

20h

12h

ch

実行結果S

応答データ長M パリティPs00h

符号あり 32bit 整数D

type
69h

D0

…

P

Time Offset

D7

T0

…

T7

パリティP
ｐ

D4～D7はダミーデータで埋める

Figure 20
符号あり 32bit 整数
引数データ

Time offsetなし
要求
応答

要求種別Q

引数データ長N

ch

20h

0Ah

ch

実行結果S

応答データ長M

パリティP

s

00h

p

符号あり 32bit 整数D

type
69h

D0

…

D7

パリティP
p

D4～D7はダミーデータで埋める

Figure 21
符号なし 32bit 整数
引数データ

Time offset付
要求
応答

要求種別Q

引数データ長N

ch

20h

12h

ch

実行結果S

応答データ長M

パリティP

s

00h

pph

Time Offset

符号なし 32bit 整数D

type
49h

D0

…

D7

T0

…

T7

パリティP
pph

D4～D7はダミーデータで埋める

Figure 22
符号なし 32bit 整数
引数データ

Time offsetなし
要求
応答

要求種別Q

引数データ長N

ch

20h

0Ah

ch

実行結果S

応答データ長M パリティPs00h

符号なし 32bit 整数D

type
49h

D0

…

p

D7

パリティP
p

D4～D7はダミーデータで埋める

Figure 23
符号あり 64bit 整数
引数データ

Time offset付
要求
応答

要求種別Q

引数データ長N

ch

20h

12h

ch

実行結果S

応答データ長M

パリティP

s

00h

p

符号あり 64bit 整数D

type
6Ch

D0

…

D7

Time Offset
T0

…

T7

パリティP
p

Figure 24

26 / 63符号あり 64bit 整数
引数データ

Time offsetなし
要求
応答

要求種別Q

引数データ長N

ch

20h

0Ah

ch

実行結果S

応答データ長M

パリティP

s

00h

p

符号あり 64bit 整数D

type
6Ch

D0

…

D7

パリティP
p

Figure 25
符号あり 64bit 整数
引数データ

Time offset付
要求
応答

要求種別Q

引数データ長N

ch

20h

12h

ch

実行結果S

応答データ長M

パリティP

s

00h

p

符号あり 64bit 整数D

type
4Ch

D0

…

Time Offset

D7

T0

…

パリティP

T7

p

Figure 26
符号あり 64bit 整数
引数データ

Time offsetなし
要求
応答

要求種別Q

引数データ長N

ch

20h

0Ah

ch

実行結果S

応答データ長M

パリティP

s

00h

p

符号あり 64bit 整数D

type
4Ch

D0

…

D7

パリティP
p

Figure 27
32bit 浮動小数点
引数データ

Time offset付
要求
応答

要求種別Q

引数データ長N

ch

20h

12h

ch

実行結果S

応答データ長M

パリティP

s

00h

p

32bit 浮動小数点D

type
66h

D0

…

Time Offset

D7

T0

…

T7

パリティP
p

D4～D7はダミーデータで埋める

Figure 28
32bit 浮動小数点
引数データ

Time offsetなし
要求
応答

要求種別Q

引数データ長N

ch

20h

0Ah

ch

実行結果S

応答データ長M

パリティP

s

00h

p

32bit 浮動小数点D

type
66h

D0

…

D7

パリティP
p

D4～D7はダミーデータで埋める

Figure 29
64bit 浮動小数点
引数データ

Time offset付
要求
応答

要求種別Q

引数データ長N

ch

20h

12h

ch

実行結果S

応答データ長M

パリティP

s

00h

p

64bit 浮動小数点D

type
64h

D0

…

Time Offset

D7

T0

…

T7

パリティP
p

Figure 30
64bit 浮動小数点
引数データ

Time offsetなし
要求
応答

要求種別Q

引数データ長N

ch

20h

0Ah

ch

実行結果S

応答データ長M

パリティP

s

00h

p

64bit 浮動小数点D

type
64h

D0

…

D7

パリティP
p

Figure 31

27 / 63

8byte配列
引数データ

Time offset付
要求
応答

要求種別Q

引数データ長N

ch

20h

12h

ch

実行結果S

応答データ長M

パリティP

s

00h

p

8byte配列D

type
62h

D0

…

Time Offset

D7

T0

…

T7

パリティP
p

Figure 32
8byte配列
引数データ

Time offsetなし
要求
応答

要求種別Q

引数データ長N

ch

20h

0Ah

ch

実行結果S

応答データ長M

パリティP

s

00h

p

8byte配列D

type
62h

D0

…

D7

パリティP
p

Figure 33

実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。

02h
03h
04h

キューにデータが正しく入れることができた状態です。
与えられた要求のパリティ値が異常であったことを示します
このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常(Ch, Type 値の間違い)などその他のエラーがあったことを示します。

05h
06h
07h

このとき応答データはなく M=00h となります。
コマンドの実行結果がエラーです。キューがオーバーフローしたことを示します。
このとき応答データはなく M=00h となります。
使用しません
使用しません
Table 1228 / 63データの即時送信

Tx immediately
Time offset付
要求

応答

要求種別Q

引数データ長N

引数データ1ch

21h(0Ah x n)+ 08h

ch

実行結果S

応答データ長M

パリティP

s

00h

p

type

引数データ2
D

type
D0

…

ch
D7

ch

D7

ch

引数データn
D

type
type

D0

…

…
D7

ch
ch

type

Time Offset

D

type
D0

…

D7

T0

…

パリティP
T7

p

Time offsetなし
要求

応答

要求種別Q

引数データ長N

引数データ1ch

21h

0Ah x nch

実行結果S

応答データ長M

パリティP

s

00h

p

type

引数データ2
D

type
D0

…

ch

引数データn
D

type
type

D0

…

…
D7

ch
ch

type

パリティP

D

type
D0

…

D7

p

Figure 34

sakura.io プラットフォームへ送信するデータを，送信キューを通さずに即座に送信するためのコマンドです。
このコマンドは送信キューには影響せず，キューイング済みのデータがある場合はそのまま保持されます。
複数のデータを最大 16 個まで連結して同時に送信可能です。連続して送信する場合、Time Offset 値
は一つだけつけることができ、これを付けた場合連続した最大 16 個のデータは同一の Time Offset 値のデータとして扱われます。異なる Time Offset 値を付ける必要がある場合はコマンドを分ける必要があります。
引数 ch は，ユーザが任意に割り当てられるチャネル番号で，00h から 7Fh までの任意の値を使用することができます。80h 以上の値を指定することはできません。sakura.io プラットフォーム側でこのチャンネル番号とデータが紐づけられて取得できるので、送信データの分類分けなどユーザの目的に合わせて使用可能です。
type は，送信するデータの型を指定するための型指定子で，以下のいずれかの値とする必要があります。
D型
符号あり 32bit 整数
sakura.io プラットフォーム到着時に 10 進のテキスト表記に変換されます。
符号なし 32bit 整数
sakura.io プラットフォーム到着時に 10 進のテキスト表記に変換されます。
符号あり 64bit 整数
sakura.io プラットフォーム到着時に 10 進のテキスト表記に変換されます。
符号なし 64bit 整数
sakura.io プラットフォーム到着時に 10 進のテキスト表記に変換されます。
32bit 浮動小数点数

type
値
69h
49h
6Ch
4Ch
66h

IEEE754 binary32 フォーマットで格納します。
sakura.io プラットフォーム到着時に 10 進の浮動小数点テキスト表記に変換されます。
完全な IEEE754 binary32 精度が必要な場合は「8 バイトの配列」で送信をお勧めします。
64bit 浮動小数点数

64hIEEE754 binary64 フォーマットで格納します。
sakura.io プラットフォーム到着時に 10 進の浮動小数点テキスト表記に変換されます。
完全な IEEE754 binary64 精度が必要な場合は「8 バイトの配列」で送信をお勧めします。
29 / 6362h

8 バイトの配列
sakura.io プラットフォーム到着時に 8 個連続した 16 進文字列に表記に変換されます。
例：
D(0) =01h、D(1) =02h、D(2) =03h、D(3) =04h、D(4) =05h、D(5) =06h、D(6) =07h、D(7) =08h の時、“0102030405060708”

Table 13
引数 D には，64bit 型データの値を、下位バイトから順に 8 バイト格納します。

32bit 型の値を格納する場合には，上位に 32bit 付加して 64bit データとし、64bit 型データと同様に格納する必要があります。上位 32bit の値は don’t care として扱われます。
また、8 バイト配列型の場合も同様に、必要データサイズが 8 バイト未満であってもダミーデータを付加し、8バイトのデータとして送る必要があります。

D(0) [LSB]

D(1)

D(2)

D(0) [LSB]

D（32 ビット値）
D(1)
D(2)

D（64 ビット値）
D(3)
D(4)
Figure 35

D(5)

D(6)

D(7) [MSB]

don’t careD(3) [MSB]
X
Figure 36

X

X

X[ch, type, Data]のセットは連続して n=16 回まで繰り返すことができます。それぞれ、別の ch、type、
Data を指定することができます。TimeOffset だけは、連続データすべてで共通の Offset ととして、一つだ
け最後に引数 T で付加することができます。引数 T は省略可能で、その場合は 0 がセットされたものとみなします。
引数 T には，当該データが発生した時刻を，このコマンドが実行された時点を基準する 1 [ms] 単位の相対時間として指定することができます。
例として，T の値が 2,500 (09C4h) であるときは，当該データは，コマンドが実行された瞬間を起点として2.5 [s] 過去に発生したものであることを意味します。モジュールは Tx immediately コマンド発行後、各データ毎に T に sakura.io プラットフォームへ送信されるまでの滞留時間を加えた合計時間 T’を計算しデータとセットで sakura.io プラットフォームへ送信します。sakura.io プラットフォームではデータの到着時間から T’を引いた時間をデータの発生時間として保持します。しかし、ネットワーク回線上での送信遅延や、LTE 圏外
からの再接続処理での遅延などは補正されませんので、不特定時間のずれが発生します。確実な時間が必要な場合には別途ユーザ側で時間管理データを送受するなど補償処理を行ってください。
T の最大値は，7,776,000,000 (1 CF7C 5800h) で，最大で 90 日まで過去の情報を扱うことができます。
ただし，sakura.io プラットフォーム側の仕様として，T の値と sakura.io プラットフォームへ送信されるまでの滞留時間を合計した結果，データ発生時間が 90 日よりも過去となったデータは受け容れを行わずに破棄します。90 日の判定は sakura.io プラットフォーム側でのみ行われます。破棄されたかどうかはモジュール側からは検出できません。90 日超の T をセットしたり、滞留で 90 日超えた場合には、sakura.io プラットフォー
ムでのデータ蓄積は行われませんが、データの送信が行われてポイントの消費が発生しますので注意してください。
30 / 63

T(0) [LSB]

T(1)

T(2)

Time offset（64 ビット値）
T(3)
T(4)
T(5)
Figure 37

T(6)T(7) [MSB]

T の値として，範囲外の値が与えられた場合の動作は未定義です。また，未来の時刻を与えることはできません。
Tx immediately でのデータ送信が成功したかどうかを Get Tx status で必ず確認してください。
Get Tx status で失敗となっている場合、Tx immediately コマンドのデータは破棄されています。
Tx immediately の後、送信が完了する前に Tx immediately を発行すると後者のコマンドは、実行結
果 S=07h が返りデータは送られません。Get Tx status で前の Tx immediately が完了したことを確認してから、新しい Tx immediately を発行してください。
新しい Tx immediately の発行が成功するまでは、Get Tx status では直前の Tx immediately のステータスが保持されます。
Tx queue send コマンドでデータ送信中に Tx immediately を発行すると、現在送信処理中のデータの送信完了後に、Tx immediately のデータが送られます。

実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。

02h
03h
04h

データの送信が正常に行われたかどうかは表していません。
与えられた要求のパリティ値が異常であったことを示します
このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常(Ch, Type 値の間違い)などその他のエラーがあったことを示します。

05h

このとき応答データはなく M=00h となります。
使用しません

06h

使用しません07hBusy 状態です。ひとつ前に実行された Tx immediately が完了してない状態です。
Table 1431 / 63

送信キュー状態取得

Get Tx queue length
要求
応答

要求種別Q

引数データ長N パリティP

22h

00h

実行結果S

応答データ長M

s

02h

p
応答データ
available

queuedパリティPpFigure 38
送信キューの状態を取得します。
available: 追加可能なデータの個数です。0 の場合には，データを追加することはできません。
queued: キューイングされているデータの個数です。0 の場合には，キューは空であることを示します。
(available + queued) の値はキュー全体の大きさを示しますが，キューの内部処理状況により合計値は変動する可能性があり，値が一定になることは保証されません。
実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。

02h
03h
04h

キューの状態が取得できた状態です。
与えられた要求のパリティ値が異常であったことを示します
このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを
示します。

05h

このとき応答データはなく M=00h となります。
使用しません

06h

使用しません

07h

使用しません
Table 1532 / 63

送信キュークリア

Tx queue flush
要求
応答

要求種別Q

引数データ長N パリティP

23h

00h

実行結果S

応答データ長M パリティP

p

s

00h

p

Figure 39
送信キュー内のデータを sakura.io プラットフォームへ送信せずにすべて破棄し，キューを空にします。
送信中状態になっているキューから取り出し済みのデータは破棄されず送信を継続します。ただし、送信がエラーとなり送信用バッファで待機しているデータについては破棄されます。送信中状態になっているキューから取り出し済みのデータが Tx queue flush 実行後にエラーとなった場合は破棄されず送信用バッファに確保され次回の Tx queue send で再送が試みられます。
キューが空の時の実行でも実行結果は成功になります
実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。

02h
03h
04h

キューのクリアが成功しています。
与えられた要求のパリティ値が異常であったことを示します
このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを示
します。

05h

このとき応答データはなく M=00h となります。
使用しません

06h

使用しません

07h

使用しません
Table 1633 / 63

送信キュー送信

Tx queue send
要求
応答

要求種別Q

引数データ長N パリティP

24h

00h

実行結果S

応答データ長M パリティP

s

00h

p
p

Figure 40

送信キューのデータを，すべて sakura.io プラットフォーム側へ送信します。この要求を与えると，キューからのデータ送信処理が開始されます。コマンド実行後即応答返ってきますが、これは送信の完了を意味しているものではなく、モジュール内で引き続き送信作業が行われています。送信状態を知るには Get Tx statusを使用します。
このコマンドが発行されると、まずこの時点でキューに入っている全データを送信対象に指定します。これ以降にキューに追加されたデータは今回のコマンドでは送信されません。送信処理は最大 16 個までのデータをひとまとめにして sakura.io プラットフォームへの送信が行われます。まず送信キューから最大 16 個のデータを取り出して、一旦送信用にバッファに確保し、ひとつのセットとして sakura.io プラットフォームへ送信を行います。
正常に送信完了すると、17 個目以降のデータについて同様に送信処理を行い、送信対象にしたデータをすべて送信完了すると送信処理は終了します。
送信が失敗した場合には送信用のバッファにデータは確保したまま送信処理は終了し、Get Tx status で状態を取得すると送信エラーが応答される状態になります。この状態で Tx queue send コマンドを再度発行するとキューからはデータを取らずに送信用のバッファにあるデータの再送を試みます。これを繰り返すことで再度送信リトライが可能となります。
Tx queue send コマンドが活動している間は Get Tx status コマンドの応答として 01h(送信中)のステータ
スが応答されます。
送信が正常に終了すると、Get Tx status で 00h が応答されます。
キューが空の時に発行した Tx queue send コマンドは成功します。
また 、Tx queue send コ マン ドで 送 信 処 理 中に Tx queue send コ マン ドを発 行 し た 場 合 に は
S=07h(busy)を応答し処理されません。Get Tx status で状態を確認してからのコマンド発行をお勧めします。

実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。

02h

送信処理が開始されたことを示します。正常な送信完了を意味するものではありません。
与えられた要求のパリティ値が異常であったことを示します
このとき応答データはなく M=00h となります。
34 / 6303h04h

与えられた要求の要求種別が未定義であったことを示します。
このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを示
します。

05h

このとき応答データはなく M=00h となります。
使用しません

06h

使用しません07hBusy。以前の Tx queue send コマンドでの送信が処理中です。
Table 1735 / 63

送信ステータス取得

Get Tx status
要求
応答

要求種別Q

引数データ長N パリティP

25h

00h

実行結果S

応答データ長M

s

02h

p
応答データ
D0

D1

パリティP
p

Figure 41
直前に実行した、Tx queue send コマンドと、Tx immediately コマンドの送信状態を取得します。
D(0)には Tx queue send コマンドによる送信の状態，D(1)には Tx immediately コマンドによる送信の状態が示されます。
D(0)値

意味
Tx queue send コマンドによる送信が起動後一度も行われていない、

00h

Tx queue send コマンドによる送信が成功済み、
Tx queue flush コマンドで送信用バッファも空になった時、のいずれかを表します。

01h

Tx queue send コマンドによる送信処理が実行中です。
Tx queue send コマンドによる送信が失敗し、処理が終了した状態です。この時、キューとは別の送信用バッファに失敗時の送信データは保持しています。この状態で Tx queue

02hsend コマンドを発行すると送信用バッファのデータを再送することができます。
また、この状態で Tx queue flush コマンドを実行するとキューのデータだけでなく、送信用
バッファで保持しているデータも消すことができます。
Table 18

D(1)値

意味
Tx immediately コマンドによる送信が起動後一度も行われていない、

00h

Tx immediately コマンドによる送信が成功済み、のいずれかを表します。

01h
02h

Tx immediately コマンドによる送信処理が実行中です。
Tx queue send コマンドによる送信が失敗し、処理が終了した状態です。この時、Tx
immediately で送信を試みたデータは破棄されています。
Table 19

実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。
状態取得が正常の行われたことを意味します。
36 / 63

02h
03h
04h

与えられた要求のパリティ値が異常であったことを示します
このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを
示します。

05h

このとき応答データはなく M=00h となります。
使用しません

06h

使用しません

07h

使用しません
Table 2037 / 63データ受信コマンド
受信キュー取得

Rx dequeue
要求

応答

要求種別Q

引数データ長N パリティP

30h

00h

実行結果S

応答データ長M

s

12h

p
応答データ
ch

type

ch

type

D
D0

…

Time Offset
D7

T0

…

T7

パリティP
p

Figure 42
受信キューから先頭のデータを一つ取り出して応答データとして返します。取り出したデータは，キューから削除されます。
応答データのうち，ch，type，および D のシンタックスは，Tx enqueue の引数データと同一です。
T には，データがモジュールに到着してから本コマンドが実行されるまでの 1 [ms] 単位の時間が格納されます。Tx enqueue のような時間のオフセットを sakura.io プラットフォーム側から指定することはできません。
sakura.io プラットフォーム側から送られたデータが、本モジュールに届いたときに化けるなどしてエラーとなっていた場合は破棄され受信キューには入りません。この破棄が発生したことを検出する手段は、sakura.io プ
ラットホーム側からも本モジュール側からも用意されていません。確実な受信の為にはユーザ側で到達確認の情報をやり取りするなどの保障手段を講じてください。
キューが空の場合は，本コマンドは失敗し、s の値として 05h，M の値として 00h を返します。
実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。

02h
03h
04h

受信キューから正しくデータ取得できたことを示します。
与えられた要求のパリティ値が異常であったことを示します
このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを
示します。

05h
06h
07h

このとき応答データはなく M=00h となります。
エラー。キューが空の時に帰します。
このとき応答データはなく M=00h となります。
使用しません
使用しません
Table 2138 / 63

受信キュー参照

Rx queue peek
要求種別Q

引数データ長N パリティP

31h

00h

実行結果S
s

p

応答データ長M
12h

応答データ
ch

type

ch

type

D
D0

…

Time Offset
D7

T0

…

T7

パリティP
p

Figure 43
受信キューから先頭のデータを一つを参照することができます。参照したデータは，キューにのこります。
応答データのうち，ch，type，および D のシンタックスは，Tx enqueue の引数データと同一です。
T には，データがモジュールに到着してから本コマンドが実行されるまでの 1 [ms] 単位の時間が格納されます。
Tx enqueue のような時間のオフセットを sakura.io プラットフォーム側から指定することはできません。
sakura.io プラットフォーム側から送られたデータが、本モジュールに届いたときに化けるなどしてエラーとなっていた場合は破棄され受信キューには入りません。この破棄が発生したことを検出する手段は、sakura.io プ
ラットフォーム側からも本モジュール側からも用意されていません。確実な受信の為にはユーザ側で到達確認の情報をやり取りするなどの保障手段を講じてください。
キューが空の場合は，本コマンドは失敗し、s の値として 05h，M の値として 00h を返します。
実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。

02h
03h
04h

受信キューから正しくデータ取得できたことを示します。
与えられた要求のパリティ値が異常であったことを示します
このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを示します。

05h
06h
07h

このとき応答データはなく M=00h となります。
エラー。キューが空の時に帰します。
このとき応答データはなく M=00h となります。
使用しません
使用しません
Table 2239 / 63

受信キュー済み件数取得

Get Rx queue length
要求
応答

要求種別Q

引数データ長N パリティP

32h

00h

実行結果S

応答データ長M

s

02h

p
応答データ
available

queuedパリティPpFigure 44
受信キューの状態を取得します。
available: 追加可能なデータの個数です。0 の場合には，新たなデータを受信することはできません。
queued: キューイングされているデータの個数です。0 の場合には，キューは空であることを示します。
(available + queued) の値はキュー全体の大きさを示しますが，キューの内部処理状況により合計値は変動する可能性があり，値が一定になることは保証されません。
実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。

02h
03h
04h

受信キュー件数が正しく取得できたことを示します。
与えられた要求のパリティ値が異常であったことを示します
このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを示
します。

05h

このとき応答データはなく M=00h となります。
使用しません

06h

使用しません

07h

使用しません
Table 2340 / 63

受信キュークリア

Rx queue flush
要求
応答

要求種別Q

引数データ長N パリティP

33h

00h

実行結果S

応答データ長M パリティP

s

00h

p
p

Figure 45
受信キュー内のデータをすべて削除し，キューを空にします。
キューが空の時に実行した場合も成功します。
実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。

02h
03h
04h

受信キューを正しく削除できたことを示します。
与えられた要求のパリティ値が異常であったことを示します
このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを示
します。

05h

このとき応答データはなく M=00h となります。
使用しません

06h

使用しません

07h

使用しません
Table 24

41 / 63

ファイル受信コマンド
ファイル受信開始

Start file download
要求
応答

引数データ

要求種別Q

引数データ長N

40h

02h

実行結果S

応答データ長M パリティP

s

00h

ID0

ID1

パリティP
p

p

Figure 46
ファイル受信処理を開始します。引数 ID により，取得するファイル ID を指定します。ID は 16bit 符号なし
整数で指定します。
このコマンドにより、ID に対応したファイルをインターネットよりダウンロードし、モジュールへ送信する準備をする
よう sakura.io プラットフォームに対して指示が行われます。
実際に指定した ID のファイルが受信可能になったかどうかなどは Get file metadata コマンドで確認する必要があります。
Ver.1.4.3 以降は ID は 1～100 が指定できます。0 と 101 以降を指定すると s=04h が返ります。
Ver.1.2.1～1.4.2 は ID は 1～5 が指定できます。0 と 6 以降を指定すると s=04h が返ります。
Ver.1.2.0 以前はファイル受信機能をサポートしていません。s=03h が返ります。
実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。

02h
03h

受信できるファイルがあるかなどを保証するものではありません。
与えられた要求のパリティ値が異常であったことを示します
このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
ファイル受信機能をサポートしていない Ver.のときもこのエラーになります。

04h

このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを示します。ID の指定範囲の間違いでも発生しますが、Fw Ver.により発生条件が異なります。

05h

このとき応答データはなく M=00h となります。
エラー。ほかの Start file download により、ファイル受信が進行している状態です。
完了を待つか、キャンセルをする必要があります。

06h
07h

このとき応答データはなく M=00h となります。
使用しません
使用しません
Table 25
42 / 63

ファイルメタ情報取得

Get file metadata
要求

応答

要求種別Q

引数データ長N パリティP

41h

00h

実行結果S

応答データ長M

s

11h

p
応答データ
合計サイズZ

受信ステータスRsr

Z0…

タイムスタンプT

Z3

T0

…

T7

パリティP

冗長符号C
C0

…

C3

p

Figure 47
受信するファイルのメタ情報を取得します。
このコマンドは，ファイル受信開始コマンドを実行したあと，ファイルの受信を開始するまでの間に実行することにより、受信するファイルサイズなどを取得できます。
応答データとして得られるメタ情報は，以下のとおりです。
Rs: ファイル受信リクエストステータス(sakura.io プラットフォームが、指定 URL から受信した際のステータス)
Z: ファイルの合計サイズ（32bit 符号なし整数で表すバイト数）
T: ファイルタイムスタンプ（64 ビットの UNIX 時刻）
sakura.io プラットフォームが、指定 URL からファイルを取得したときの、HTTP ヘッダの Last-Modified
を 64 ビット UNIX 時刻に変換したものが入っています。
C: ファイル全体の冗長検査符号（32bit 符号なし整数：POSIX-CRC32）
Rs には，sakura.io プラットフォームがインターネット上のサーバに対してファイルのリクエストを行った結果が格納されます。Rs は，以下のいずれかの値となります。Rs におけるファイル受信エラーは，インターネット上のサーバから sakura.io プラットフォーム間で発生したエラーを意味します。
Rs 値
00h
01h
02h
81h
82h

意味
リクエスト成功。sakura.io プラットフォームからファイルサイズ、タイムスタンプ、冗長符号が正しく取得されていますsakura.io コントロールパネルの指定 ID に対してファイル要求先 URL が登録されていないときです。Z,T,C の値は不定です。
不正なリクエスト (要求されたファイル ID が許容範囲外)です。Z,T,C の値は不定です。
sakura.io プラットフォームが指定の URL からダウンロードを試みたものの、ファイルが存在しなかった(HTTP 404) ときです。Z,T,C の値は不定です。
sakura.io プラットフォームが指定の URL からダウンロードを試みたものの、サーバエラー(HTTP 500)が返ってきたときです。Z,T,C の値は不定です。
sakura.io プラットフォームが指定の URL からダウンロードを試みたものの、リクエストの結果
が不正な場合です。Z,T,C の値は不定です。以下のような場合が含まれます。

83h



応答に Content-Length ヘッダが含まれない(ファイルサイズ取得失敗)



ファイルサイズ制限超過(Max. 16MB)



応答のペイロードが空

Table 26

43 / 63

Start file download してない時、実行結果 S は不定となります。本コマンドは Start file download を行ってから実行してください。
実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。
sakura.io プラットフォームからファイルメタに関する情報を取得できたことを意味します。あくまでも sakura.io プラットフォームから情報を取得できたことを表すもので、ファイルが無いな

02h
03h

どのエラー状態も含みます。
与えられた要求のパリティ値が異常であったことを示します
このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
ファイル受信機能をサポートしていない Ver.のときもこのエラーになります。

04h

このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを
示します。

05h

このとき応答データはなく M=00h となります。
使用しません

06h

使用しません07h

Start file download 後、sakura.io プラットフォームがファイルメタ情報を準備している状態を示します。01h が返るまで、本コマンドで情報取得を繰り返してください。
圏外や、モジュール未登録時などでもこちらの状態になります。
Table 27

44 / 63

ファイル受信ステータス取得

Get file download status
要求

応答

要求種別Q

N

パリティP

42h

00h

p

実行結果S

応答データ長M

s

05h

応答データ
受信済みデータ長Z

受信ステータスRm
r

Z0

…

Z3

パリティP
p

Figure 48
受信中ファイルの受信状態を取得します。ファイルの受信経過や完了の管理に使用します。
応答データとして得られるステータス情報は，以下のとおりです。
Rm: ファイル受信ステータス(本モジュールが sakura.io プラットフォームから受信したときのステータス)
Z: 受信済みデータ長（32bit 符号なし整数で表すバイト数）モジュールからユーザ機器が受け取ったデー
タ量Rm は，以下のいずれかの値となります。Rm であらわされるステータスは，sakura.io プラットフォームから本モジュール間でのやり取りの状態を表します。
Rm 値

意味
以下のいずれかの状態を表します
・Start file download が一度も発行されていない・sakura.io プラットフォームから本モジュールへ全データが転送完了した状態。

00h(モジュールからユーザ機器に全データが渡ったことを表すものではありません。
ファイル受信用のバッファにデータが残っている場合も、本モジュールまで、全データが届いた時点でこちらのステートに移行します。)
・ファイル受信中にキャンセルを発行した場合
ファイル受信要求中。Start file download 発行後、sakura.io プラットフォ

01hームから本モジュールへファイルのメタデータが届いていない状態です。
Get file metadata コマンドで S=07h が返ってくる状態です。
ファイル受信中。本モジュールが sakura.io プラットフォームからファイルのメタデータを取得してから、sakura.io プラットフォームから本モジュールへ全データが転02h

送完了する直前までのステートになります。
本モジュールはファイルメタデータを取得できた時点で自動的に sakura.io プラ
ットフォームから、ファイル受信用のバッファへダウンロードします。このファイル受信用のバッファの空きに寄らず完了直前までこのステータスを返します。
ファイル受信エラー。

81h

この状態で Get file metadata を実行すると Rs が 00h 以外の値が返る状
態です。

Table 2845 / 63

実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。

02h
03h

ファイル受信の正常性を示すものではありません。
与えられた要求のパリティ値が異常であったことを示します
このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
ファイル受信機能をサポートしていない Ver.のときもこのエラーになります。

04h

このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを
示します。

05h

このとき応答データはなく M=00h となります。
使用しません

06h

使用しません

07h

使用しません
Table 2946 / 63

ファイル受信キャンセル

Cancel file download
要求
応答

要求種別Q

引数データ長N パリティP

43h

00h

実行結果S

応答データ長M パリティP

s

00h

p
p

Figure 49
ファイル受信を中止します。
受信中のバッファ内のデータは破棄され、ファイル受信関連の状態が初期化されます。
実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。

02h

与えられた要求のパリティ値が異常であったことを示します

03h

このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
ファイル受信機能をサポートしていない Ver.のときもこのエラーになります。

04h

このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを示
します。

05h

このとき応答データはなく M=00h となります。
使用しません

06h

使用しません

07h

使用しません
Table 30

47 / 63

ファイル受信データ取得

Get file data
要求
応答

要求種別Q

引数データ長N

受信可能サイズRsize

パリティP

44h

01h

Rsize

p

実行結果S

応答データ長M

p

z

応答データ

パリティP

D
D0

…

Dz-1

p

Figure 50
受信中ファイルのデータを取得するためのコマンドです。
本モジュールは、指定された Rsize 以下で、ユーザ機器へむけて受信ファイルの先頭から応答データとして返送します。本コマンドを繰り返すたびに前回ユーザ機器へ未送信のところから順次データを応答します。応答
データサイズは、最大データを指定された Rsize、最小で 0 の任意の値を取ります。このデータサイズは、
sakura.io プラットフォームから本モジュールがデータを受け取っているバッファ量などで変化します。
Rsize: ユーザ機器側が一度に受け取れる応答データサイズを指定します。
最小 1byte、最大 255byte を指定することができます。（8bit 符号なし整数で表すバイト数）
M: sakura.io モジュールからユーザ機器に実際に送信されるデータサイズが応答されます。
0 以上、指定された Rsize 以下の値を取ります。（8bit 符号なし整数で表すバイト数）
ファイルの末尾まで受信できたかどうかは下記の二条件が同時に成り立っているかで判定できます・Get file data コマンドで M=00h が返ってくる・Get file Download Status コマンドで Rm=00h が返ってくる
ただし、通信エラーなどで一部データが喪失した場合などごく一部の条件で、Get file Download Status
コマンドの結果がいつまでも Rm=00h にならないことがあります。その際は適宜ファイル受信をキャンセルし、やり直してください。
実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。

02h

与えられた要求のパリティ値が異常であったことを示します

03h

このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
ファイル受信機能をサポートしていない Ver.のときもこのエラーになります。

04h

このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを示します。
このとき応答データはなく M=00h となります。

48 / 6305h

以下のいずれかの状態を表します
・Start file download が発行されていない状態でのコマンド実行
・Start file download 発行後、sakura.io プラットフォームから本モジュールへファイルのメタデータが届いていない状態でのコマンド実行・ユーザ機器が受信ファイルの全データを受け取った後のコマンド実行

06h
07h

・ファイル受信キャンセル後のコマンド実行
使用しません
使用しません
Table 3149 / 63

管理コマンド
製品 ID の取得

Get product ID
要求
応答

要求種別Q

引数データ長N パリティP

A0h

00h

実行結果S

応答データ長M

s

02h

p
応答データ
D0

D1

パリティP
p

Figure 51
本モジュールの製品 ID を応答します。
SCM-LTE-Beta は 01h 00h を，SCM-LTE-01 は 02h 00h を返します。
実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。

02h

与えられた要求のパリティ値が異常であったことを示します

03h
04h

このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを
示します。

05h

このとき応答データはなく M=00h となります。
使用しません

06h

使用しません

07h

使用しません
Table 32

50 / 63

製品個体 ID の取得

Get unique ID
要求
応答

要求種別Q

引数データ長N パリティP

A1h

00h

実行結果S

応答データ長M

s

0Ah

p
D
D0

…

パリティP
D9

p

Figure 52
本モジュールの製品個体 ID を応答します。
製品個体 ID は個体ごとに異なる ID で，10 文字の ASCII 文字列です。
応答データの各文字は，21h から 7Eh までの，任意の値が出現します。
実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。

02h

与えられた要求のパリティ値が異常であったことを示します

03h
04h

このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを示
します。

05h

このとき応答データはなく M=00h となります。
使用しません

06h

使用しません

07h

使用しません
Table 33

51 / 63

ファームウェアバージョンの取得

Get firmware version
要求
応答

要求種別Q

引数データ長N

パリティP

A2h

00h

p

実行結果S

応答データ長Msm

バージョン情報D
D0

…

Dm-1

パリティP
p

Figure 53

本モジュールのファームウェアバージョンを応答します。
バージョンを示す応答データは最大 32 文字の ASCII 文字列です。
応答データの各文字は，21h から 7Eh までの，任意の値が出現します。
実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。

02h

与えられた要求のパリティ値が異常であったことを示します

03h
04h

このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを
示します。

05h

このとき応答データはなく M=00h となります。
使用しません

06h

使用しません

07h

使用しません
Table 34

52 / 63

特殊コマンドアンロック

Unlock
要求
応答

引数データ

要求種別Q

引数データ長N

A8h

04h

実行結果S

応答データ長M パリティP

s

00h

53h

6Bh

72h

パリティP
61h

p

p

Figure 54
ファームウェア更新コマンドおよびソフトウェアリセットコマンドを実行するためのアンロックコマンドです。
ファームウェア更新コマンドおよびソフトウェアリセットコマンドを実行する直前に，このコマンドを実行してください。
このコマンドの実行直後のコマンドのみロックが解除された状態で実行されます。
その次のコマンドからはロックがかかった状態になります。
Unlock コマンドを連続して発行した場合は最後の Unlock コマンドの直後のコマンドのみロックが解除された状態になります。
実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。

02h

与えられた要求のパリティ値が異常であったことを示します

03h
04h

このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを
示します。

05h

このとき応答データはなく M=00h となります。
使用しません

06h

使用しません

07h

使用しません
Table 35

53 / 63

ファームウェア更新

Firmware update
要求
応答

要求種別Q

引数データ長N パリティP

A9h

00h

実行結果S

応答データ長M パリティP

s

00h

p
p

Figure 55
ファームウェア更新処理を開始します。
このコマンドを実行するためには，直前に，特殊コマンドアンロックコマンドを実行する必要があります。
sakura.io プラットフォームに用意されている最新ファームウェアに更新されます。バージョン指定はできません。
更新状況や、エラー状況は Get firmware update status で取得します。
正常にファームウェア更新が完了すると、本モジュールは自動的にリセットされ再起動します。
最新版にアップデートされたかどうか確認するには、もう一度 Firmware update してから、Get firmware
update status コマンドでエラー01h が返ることで確認できます。

実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。

02h
03h
04h

ファームウェア更新が正常に行われたことを意味しません。
与えられた要求のパリティ値が異常であったことを示します
このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを示
します。

05h
06h
07h

このとき応答データはなく M=00h となります。
Unlock コマンドでロックが解除されていないため、ファームウェア更新処理を開始できません。
使用しません
使用しません
Table 3654 / 63

ファームウェア更新状態取得

Get firmware update status
要求
応答

要求種別Q

引数データ長N パリティP

AAh

00h

実行結果S

応答データ長M

s

01h

p
応答データ

パリティP

D

p

Figure 56
ファームウェア更新操作の状態を取得します。
D にエラーコードがセットされます。

エラーコードは以下の値を取ります。

D[7:0]の値
00h
01h

意味
アップデート処理は行っていません。
また、前回実行のアップデート処理はありません。
アップデート処理は行っていません。
また、前回実行のアップデート処理で既に最新版な為アップデート不要と判断されまし02hた。
アップデート処理は行っていません。
また、前回実行のアップデート処理で、sakura.io プラットフォームから現在の最新ファー
ムウェアのバージョン番号などの情報を取得に失敗しています。

03h

回線状況などを確認してリトライしてください。
アップデート処理は行っていません。
また、前回実行のアップデート処理で、現在より新しいファームウェアの存在を確認できた
ものの、ファームウェア自体のダウンロードが正常にできませんでした。

04h

回線状況などを確認してリトライしてください。
アップデート処理は行っていません。
また、前回実行のアップデート処理で、ファームウェア自体のダウンロードは成功したものの、書き込んだフラッシュ領域のデータの CRC をチェックに失敗しています。

80h

回線状況などを確認してリトライしてください。
現在アップデート処理中です。
sakura.io プラットフォームからファームウェアデータを受信中はもちろん、回線の一次断、圏外、モジュール未登録時などでもこちらの状態になり、無限にリトライが繰り返されます。

Table 37

55 / 63

実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。

02h
03h
04h

ファームウェア更新が正常に行われたことを意味しません。
与えられた要求のパリティ値が異常であったことを示します
このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを示
します。

05h

このとき応答データはなく M=00h となります。
使用しません

06h

使用しません

07h

使用しません

Table 38
アップデート中に通信断などが発生したときの挙動は未定義です。
Firmware update コマンド発効後、100ms は正常な応答データが返らないため、Get firmware
update status を発行しないでください。

56 / 63

ソフトウェアリセット

Software reset
要求
応答

要求種別Q

引数データ長N パリティP

AFh

00h

実行結果S

応答データ長M パリティP

s

00h

p
p

Figure 57

ソフトウェアリセットを行います。このコマンドが正常に実行された場合，即座にリセットが実行されます。
応答は返していますが、基本的に即座にリセットが実行されるため、I2C や SPI からの応答の読み込みが遅れると既にリセット済みの場合があります。
その場合、ユーザ機器からは I2C や SPI の通信がエラーとしてみえる場合があります。
事前にアンロックコマンドを発行していない場合このコマンドは失敗します。
update 中は発行しないでください
実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。

02h

与えられた要求のパリティ値が異常であったことを示します

03h
04h

このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを示
します。

05h

このとき応答データはなく M=00h となります。
Unlock コマンドでロックが解除されていないため、リセットを開始できません。

06h

使用しません

07h

使用しません
Table 3957 / 63省電力モード設定コマンド

Set power save mode
要求
応答

要求種別Q

引数データ長N 引数データ パリティP

B0h

01h

実行結果S

応答データ長M パリティP

s

00h

Pwr

p

p

Figure 58

省電力モードの設定切り替えを行います。
Pwr: 省電力モード
Pwr は以下の値を取ります。
Pwr 値
00h
01h

意味
省電力制御無効モード。
起動後、WAKE_IN 復帰後、リセット後のデフォルトモードです。
自動スリープモード

Table 40

実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。

02h

与えられた要求のパリティ値が異常であったことを示します

03h
04h

このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを示
します。

05h

このとき応答データはなく M=00h となります。
使用しません

06h

使用しません

07h

使用しません

Table 41v1.4.0 よりも前のファームウェアでは実装されていません。この場合 S=03h が返ります。

58 / 63省電力モード取得コマンド

Get power save mode
要求
応答

要求種別Q

引数データ長N パリティP

B1h

00h

実行結果S

応答データ長M 応答データ パリティP

s

01h

p
pwr

p

Figure 59
現在設定されている省電力モードを取得します。
Pwr: 省電力モード
Pwr は以下の値を取ります。
Pwr 値
00h
01h

意味
省電力制御無効モード
自動スリープモード
Table 42

実行結果 S は以下の値を取ります。
S値

意味

00h

予約

01h

コマンド自体が正常に処理されたことを意味します。

02h

与えられた要求のパリティ値が異常であったことを示します

03h
04h

このとき応答データはなく M=00h となります。
与えられた要求の要求種別が未定義であったことを示します。
このとき応答データはなく M=00h となります。
与えられた要求が、引数の長さの異常，数値範囲異常などその他のエラーがあったことを示
します。

05h

このとき応答データはなく M=00h となります。
使用しません

06h

使用しません

07h

使用しません

Table 43v1.4.0 よりも前のファームウェアでは実装されていません。この場合 S=03h が返ります。

59 / 63制約事項

ファイル受信コマンドは，v1.2.0 よりも前のファームウェアでは実装されていません。



省電力モード設定コマンド/省電力モード取得コマンドは，v1.4.0 よりも前のファームウェアでは実装されていません。

60 / 63

ソフトウェアライセンス
この製品は，内部でオープンソースソフトウェアの lwIP を使用しています。そのライセンスは以下のとおりです。
lwIP is licenced under the BSD licence:

Copyright (c) 2001-2004 Swedish Institute of Computer Science.
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, arepermitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of
conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of
conditions and the following disclaimer in the documentation and/or other materials
provided with the distribution.
3. The name of the author may not be used to endorse or promote products derived fromthis software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS AND ANY EXPRESS OR IMPLIEDWARRANTIES, INCLUDING,

BUT

NOT

LIMITEDTO,THEIMPLIEDWARRANTIESOFMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHERIN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

61 / 63

注意事項
用途の限定
この製品は，特別に高い信頼性が要求され，その故障や誤作動が生命または身体に危害を及ぼす恐れ，
膨大な財産損害を引き起こす恐れ，もしくは社会的に深刻な影響を及ぼす恐れのある用途に適用されることは意図されていません。購入者側の責任で以下を含む用途にこの製品を使用された場合，当社はいかなる責も負いかねますのでご了承ください。
原子力関連機器，航空宇宙機器，海底機器，電力制御機器，医療機器，輸送機器（自動車，列車，船舶等），交通用信号機器，燃焼制御機器，各種安全関連機器，金融関連機器，昇降機
器，その他これらの機器と同等の機器

屋外での使用屋外で使用される場合や，防水性を要求されるような環境で使用される場合は，適切な防水構造の採用および結露対策を実施してください。

コネクタ
コネクタ挿抜時には，過度の応力を加えないよう注意してください。また，搭載時には，応力が連続して加わらないよう注意してください。

設置環境
誤作動や，動作不良が予想されますので，以下のような状態または環境条件下では使用しないでください。
(ア) 液体の中，または腐食性雰囲気のある場所(イ) 高湿が連続する場所(ウ) 潮風を受ける場所(エ) 直射日光を受ける場所(オ) 急激な温度変化がある場所(カ) ヒーターやエアコンなどの風を直接受ける場所(キ) 強い振動がある場所(ク) 強い電磁波がある場所(ケ) 帯電または静電気が発生する場所(コ) その他，これらに準じる条件下

62 / 63改訂履歴
日付2018 年 9 月 14 日
2018 年 10 月 31 日

版
1.0.0

改訂内容

1.0.1

以下のコマンドの要求種別 Q の値が誤って記載されていたため修正
 Get file data Get firmware version
 Unlock

初版公開

63 / 63