Sigfox Shield for Arduinoをロシア(RC7)モードで使ってみる

技術情報

新たなSigfox Operatorがロシアに加わりました。Energoという会社です。この会社のホームページを見る限りでは、ラトビアやリトアニアでサービスをしている0G Balticsという会社と関係がありそうです。
それはさておき、ロシアが加わったことにより、今までRC1~RC6の無線コンフィグレーションであったところに、RC7が加わりました。

20200122-technical-01.png

RC7とは

Sigfox Buildサイトに各リージョンのRC定義が載っています。RC7は、欧州(RC1)の規格とほぼ同じで、上り周波数が欧州の868.130MHzに対して、868.8MHzと少しずれているだけです。
ですので、送信周波数を変更することができるATコマンドが通るRC1向け開発ボードがあれば、RC7環境をエミュレートすることができます。

Sigfox Network Emulator (SNE)とは

Sigfox社が提供しているゲートウェイエミュレータです。USBドングルタイプのSDRで、送受の周波数も設定で変更できるため、各国RC向けのデバイステストにも使えるものとなっています。こちらに使用方法を載せています。

RC7をSNEで試してみる

準備

下記のものを準備してください。

20200122-technical-02.jpeg

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に設定してください。

20200122-technical-04.png

DEVICES設定

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

20200122-technical-05.png

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コマンドでメッセージを送るだけです。念のため、ポイントとなるコード部分だけピックアップしておきます。

sample.c
#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画面上で確認できます。

20200122-technical-06.png