技術情報
Sigfox Shield for Arduinoをロシア(RC7)モードで使ってみる
2020.01.22
新たなSigfox Operatorがロシアに加わりました。Energoという会社です。ラトビアやリトアニアでサービスをしている0G Balticsという会社と関係がありそうです。
それはさておき、ロシアが加わったことにより、今までRC1~RC6の無線コンフィグレーションであったところに、RC7が加わりました。
※現在、EnergoはSigfoxサービスより撤退したため、ロシアでSigfoxサービスは提供されていません。

RC7とは
Sigfox Buildサイトに各リージョンのRC定義が載っています。RC7は、欧州(RC1)の規格とほぼ同じで、上り周波数が欧州の868.130MHzに対して、868.8MHzと少しずれているだけです。
ですので、送信周波数を変更することができるATコマンドが通るRC1向け開発ボードがあれば、RC7環境をエミュレートすることができます。
Sigfox Network Emulator(SNE)とは
UnaBiz SAS社が提供しているゲートウェイエミュレータです。USBドングルタイプのSDRで、送受の周波数も設定で変更できるため、各国RC向けのデバイステストにも使えるものとなっています。こちらに使用方法を載せています。
RC7をSNEで試してみる
準備
下記のものを準備してください。
- Sigfox SDR Dongle:上記SNE用のUSBドングルです。
- Sigfox Shield for Arduino(UnaShield):RC3用ですが、出力がほぼ同じ(アンプが要らない)のでRC7にも対応可能です(おそらくLBT機能は残ると思いますが)
- Arduino Uno

RC7の確認にあたっては、日本国内で電波を発信することは違法になるので、電波が外に漏れないように注意してください。
Sigfox Network Emulatorの設定
RADIO設定
RC7はSigfox Network Emulatorのデフォルト設定にはないので、Radio ConfigurationでOtherを選択した後、Uplink center frequency(Hz)を868800000、Downlink center frequency(Hz)を869100000、Uplink bit rateを100bpsに設定してください。

DEVICES設定
メッセージを受信するデバイスのDevice IDをIdentifierに入力してください。Nameはお好きな名前を入れていただければ結構です。

CALLBACKS設定
もし、ご自身で立ち上げているアプリケーションサーバにメッセージを送りたければ、CALLBACK設定をしてください。(ここでは割愛します)
UnaShieldからRC7でメッセージを送信する
そのまま動くサンプルスケッチはこちらからダウンロードして使ってください。
UnaShieldに搭載するSigfoxモジュールのRX/TXピンに対して、SoftwareSerialでATコマンドを送り、周波数変更をしています。
使われているATコマンドは下記のとおりです。
AT$IF=868800000 — RC7上り中心周波数
AT$DR=869100000 — RC7下り中心周波数
ATS410=1 — Public keyモードにする
ATS302=15 — 送信出力設定
AT$WR — 設定保存
あとは、AT$SFコマンドでメッセージを送るだけです。念のため、ポイントとなるコード部分だけピックアップしておきます。
#include #define rxPin 5 #define txPin 4 // set up a new serial port SoftwareSerial Sigfox = SoftwareSerial(rxPin, txPin); void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(LED_BUILTIN, OUTPUT); if(DEBUG){ Serial.begin(9600); } // open Wisol communication // define pin modes for tx, rx: pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); Sigfox.begin(9600); delay(100); sendCommand("AT$IF=868800000", "UL Frequency set: "); sendCommand("AT$DR=869100000", "DL Frequency set: "); sendCommand("ATS410=1" ,"Public key: "); sendCommand("ATS302=15" ,"Set output power to max: "); sendCommand("AT$WR", "Save config: "); }
メッセージ受信を確認する
無事、受信できた場合は、下図のように受信メッセージがSNEのMESSAGES画面上で確認できます。
