0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

箱舟プロジェクト【防災通信】Raspberry Pi 4 + BC-11AH-A2(802.11ah HAT)セットアップ1(AP-STA)

Last updated at Posted at 2026-02-06

この手順は C-11AH-A2(802.11ah HAT)をセットアップして IEEE802.11ahでの広域AP(アクセスポイント)/ STA(クライアント)共通のセットアップ方法です。 実行コマンドで AP か STA を選択して起動させます。


1. ハードウェア準備

本体基盤(Raspberry Pi 4B 4GB)
ちなみに、Raspberry Pi 3Bでも良いみたいです。
12,800
BeatCraft, Inc. BC-11AH-A2 (Raspberry Pi 802.11ah HAT) 8,999
ケース+冷却ファン+ヒートシンク(GeeekPi アクリルケース) 1,499
電源アダプター 5.1v/3A(Miuzei Raspberry Pi 4 電源) 1,299
microSD 32GB UHS-I Class10 (KIOXIA(キオクシア) 旧東芝メモリ) 680
OS BeatCraft Labsページで公開している Raspberry Pi OS Bullseye イメージ  - 
合計 25,277
※ 2025/02/01時点のAmazonでの購入価格です。
ハード組み立てイメージ

2. 802.11ah HAT用OSイメージのインストール

BeatCraft Labsページで公開している Raspberry Pi OS Bullseye イメージから64bitイメージをダウンロードしてmicroSDCardへイメージコピーしてください。
※このOSイメージをセットアップすることで、Newracom のパッケージのダウンロードしてコンパイルは不要になります。

3. SSH、SPI、Serial Port の有効化

インストールした、MicroSDカードをRaspberry Piにセットして、電源投入します。
最初に、raspi-configコマンドを使って ssh、spi、serial port を有効にしますが、beatcraft提供イメージではデフォルトでSSH接続可能なので本設定は読み飛ばしてください。

Interface Optionsを選択します。
ssh、spi、serial port の選択メニューがありますのでそれぞれ設定します。
serial port は login shell としての使用は no で無効のままにし hardware interface のみ yes で有効にします。

4. AP / STA モードについて

セットアップは共通で、最後のコマンドで AP か STA を選択します。

項目 AP(アクセスポイント) STA(クライアント)
用途 HaLow の基地局として動作 HaLow AP に接続する端末として動作
起動コマンド nrc-cli ap start nrc-cli sta start
接続コマンド 不要(AP 自身が SSID を提供) nrc-cli sta connect SSID PASS
用途例 センサー網の中心、ゲートウェイ センサー端末、子機
※実際には、上記コマンドを利用したPythonスクリプトが、"~/nrc_pkg/script"下に用意されてるので、今回はそちらのコマンドを利用することとしました。

5. SSHで接続

beatcraft提供イメージでのデフォルトのID/PWは pi/beatcraft でログイン可能です。
  • AP / STA モードで疎通を確認する 起動オプションはNRC7394 Software Package for Host mode (Linux OS)/Access Point (AP) running procedureに記載され、Pythonスクリプトで実行可能になっていますので、それに合わせてコマンドラインから起動します。

    1台のみでも機能は確認できますが、疎通を試すには本機構成で組み上げた2台が必要です。

    まず、SSHで接続します。

    APモード用機器

    
    pi@raspberrypi:~ $ ls
    Bookshelf  Documents  Music    Pictures  Templates
    Desktop    Downloads  nrc_pkg  Public    Videos
    pi@raspberrypi:~ $ cd nrc_pkg/script
    pi@raspberrypi:~/nrc_pkg/script $ ./start.py 1 1 JP
    Done.
    Done.
    ------------------------------
    Model            : 7394
    STA Type         : AP
    Country          : JP
    Security Mode    : WPA2-PSK
    BD Name          : nrc7394_bd.dat
    AMPDU            : AUTO
    Download FW      : uni_s1g.bin
    MAX TX Power     : 13 dBm
    BSS MAX IDLE     : 1800
    CONFIG_LOCATION  : FLASH
    ------------------------------
    NRC AP setting for HaLow...
    [*] Set Max CPU Clock on RPi
    1500000
    1500000
    1500000
    1500000
    Done
    [0] Clear
    [1] Copy and Set Module Parameters
    total 1164
    drwxrwxrwx 2 pi   pi     4096 Nov 13 14:44 .
    drwxrwxrwx 4 pi   pi     4096 Nov 13 14:43 ..
    -rwxrwxrwx 1 pi   pi     1959 Nov 13 14:43 copy.sh
    -rwxrwxrwx 1 pi   pi     8464 Nov 13 14:43 nrc7394_bd.dat
    -rwxrwxrwx 1 pi   pi   385324 Nov 13 14:43 nrc7394_cspi.bin
    -rwxrwxrwx 1 pi   pi   387708 Nov 13 14:43 nrc7394_cspi_eeprom.bin
    -rwxr-xr-x 1 root root 385324 Feb  6 10:52 uni_s1g.bin
    -rwxr-xr-x 1 root root 385324 Feb  6 10:52 /lib/firmware/uni_s1g.bin
    ====================================
     AP INTERFACE     : wlan0
     AP STATIC IP     : 192.168.200.1
     NET MASK NUM     : 24
    ====================================
    Config for AP is done!
    IP and DHCP config done
    [2] Set Initial Country
    [3] Loading module
    sudo insmod /home/pi/nrc_pkg/sw/driver/nrc.ko  hifspeed=20000000 spi_bus_num=0 spi_cs_num=0 spi_gpio_irq=5 spi_polling_interval=0 fw_name=uni_s1g.bin bss_max_idle=1800 ndp_preq=1 listen_interval=1000 enable_short_bi=0 bd_name=nrc7394_bd.dat set_duty_cycle=1,1000000,100000 set_cca_threshold=-75
    [4] Set Maximum TX Power
    Type     : limit        Tx power : 13
                            OK
    [*] Transmission Power Control(TPC) is activated
    [5] Set guard interval: auto
    OK
    [*] Start DHCPCD and DNSMASQ
    [*] Self configuration off
    [6] Start hostapd on wlan0
    [*] configure file copied from: /home/pi/nrc_pkg/script/conf/JP/ap_halow_wpa2.conf
    wlan0: interface state UNINITIALIZED->COUNTRY_UPDATE
    wlan0: interface state COUNTRY_UPDATE->ENABLED
    wlan0: AP-ENABLED
    [7] Start NAT
    [8] ifconfig
    eth0: flags=4163  mtu 1500
            inet 10.0.1.111  netmask 255.255.0.0  broadcast 10.0.255.255
            inet6 fe80::953d:1f6b:f0fc:b9fc  prefixlen 64  scopeid 0x20
            inet6 2400:4052:400:7200:6f52:51f2:b201:fe16  prefixlen 64  scopeid 0x0
            ether e4:5f:01:e5:f9:f2  txqueuelen 1000  (Ethernet)
            RX packets 3460  bytes 644305 (629.2 KiB)
            RX errors 0  dropped 4  overruns 0  frame 0
            TX packets 378  bytes 45619 (44.5 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    lo: flags=73  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10
            loop  txqueuelen 1000  (Local Loopback)
            RX packets 50  bytes 5863 (5.7 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 50  bytes 5863 (5.7 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    wlan0: flags=4163  mtu 1500
            inet 192.168.200.1  netmask 255.255.255.0  broadcast 192.168.200.255
            inet6 fe80::fa3:bcb2:f961:cde9  prefixlen 64  scopeid 0x20
            ether a0:8a:06:35:08:77  txqueuelen 1000  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 22  bytes 3031 (2.9 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    HaLow AP ready
    --------------------------------------------------------------------
    Done.
    pi@raspberrypi:~/nrc_pkg/script $ ip a | grep wlan0
    3: wlan0:  mtu 1500 qdisc noqueue state UP group default qlen 1000
        inet 192.168.200.1/24 brd 192.168.200.255 scope global noprefixroute wlan0
    pi@raspberrypi:~/nrc_pkg/script $
    

    STAモード用機器

    
    pi@raspberrypi:~ $ ls
    Bookshelf  Documents  Music    Pictures  Templates
    Desktop    Downloads  nrc_pkg  Public    Videos
    pi@raspberrypi:~ $ cd nrc_pkg/script
    pi@raspberrypi:~/nrc_pkg/script $ ./start.py 0 1 JP
    Done.
    Done.
    ------------------------------
    Model            : 7394
    STA Type         : STA
    Country          : JP
    Security Mode    : WPA2-PSK
    BD Name          : nrc7394_bd.dat
    AMPDU            : AUTO
    CQM              : ON
    Download FW      : uni_s1g.bin
    MAX TX Power     : 13 dBm
    BSS MAX IDLE     : 1800
    Power Save Type  : Always On
    Listen Interval  : 1000
    CONFIG_LOCATION  : FLASH
    ------------------------------
    NRC STA setting for HaLow...
    [*] Set Max CPU Clock on RPi
    1500000
    1500000
    1500000
    1500000
    Done
    [0] Clear
    [1] Copy and Set Module Parameters
    total 1164
    drwxrwxrwx 2 pi   pi     4096 Nov 13 14:44 .
    drwxrwxrwx 4 pi   pi     4096 Nov 13 14:43 ..
    -rwxrwxrwx 1 pi   pi     1959 Nov 13 14:43 copy.sh
    -rwxrwxrwx 1 pi   pi     8464 Nov 13 14:43 nrc7394_bd.dat
    -rwxrwxrwx 1 pi   pi   385324 Nov 13 14:43 nrc7394_cspi.bin
    -rwxrwxrwx 1 pi   pi   387708 Nov 13 14:43 nrc7394_cspi_eeprom.bin
    -rwxr-xr-x 1 root root 385324 Feb  6 10:56 uni_s1g.bin
    -rwxr-xr-x 1 root root 385324 Feb  6 10:56 /lib/firmware/uni_s1g.bin
    ====================================
     STA INTERFACE    : wlan0
     USE DHCP Client
    ====================================
    Config for STA is done!
    IP and DHCP config done
    [2] Set Initial Country
    [3] Loading module
    sudo insmod /home/pi/nrc_pkg/sw/driver/nrc.ko  hifspeed=20000000 spi_bus_num=0 spi_cs_num=0 spi_gpio_irq=5 spi_polling_interval=0 fw_name=uni_s1g.bin bss_max_idle=1800 listen_interval=1000 enable_short_bi=0 bd_name=nrc7394_bd.dat set_duty_cycle=1,1000000,100000 set_cca_threshold=-75
    [4] Set Maximum TX Power
    Type     : limit        Tx power : 13
                            OK
    [*] Transmission Power Control(TPC) is activated
    [5] Set guard interval: auto
    OK
    wpa_supplicant: no process found
    [6] Start wpa_supplicant on wlan0
    Successfully initialized wpa_supplicant
    wlan0: SME: Trying to authenticate with a0:8a:06:35:08:77 (SSID='halow_demo' freq=5200 MHz)
    wlan0: Trying to associate with a0:8a:06:35:08:77 (SSID='halow_demo' freq=5200 MHz)
    wlan0: Associated with a0:8a:06:35:08:77
    wlan0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
    wlan0: WPA: Key negotiation completed with a0:8a:06:35:08:77 [PTK=CCMP GTK=CCMP]
    wlan0: CTRL-EVENT-CONNECTED - Connection to a0:8a:06:35:08:77 completed [id=0 id_str=]
    [*] Start DHCPCD and DNSMASQ
    [7] Connect and DHCP
            inet 192.168.200.15  netmask 255.255.255.0  broadcast 192.168.200.255
    IP assigned. HaLow STA ready
    --------------------------------------------------------------------
    Done.
    pi@raspberrypi:~/nrc_pkg/script $ ip a
    1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: eth0:  mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether e4:5f:01:e5:f7:71 brd ff:ff:ff:ff:ff:ff
        inet 10.0.1.98/16 brd 10.0.255.255 scope global dynamic noprefixroute eth0
           valid_lft 172786sec preferred_lft 151186sec
        inet6 2400:4052:400:7200:3016:3bd7:b76e:5a2e/64 scope global dynamic mngtmpaddr noprefixroute
           valid_lft 7186sec preferred_lft 3586sec
        inet6 fe80::2d6e:2a9e:abf5:1ab6/64 scope link
           valid_lft forever preferred_lft forever
    3: wlan0:  mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether a0:8a:06:35:02:9d brd ff:ff:ff:ff:ff:ff
        inet 192.168.200.15/24 brd 192.168.200.255 scope global dynamic noprefixroute wlan0
           valid_lft 86396sec preferred_lft 75596sec
        inet6 fe80::a28a:6ff:fe35:29d/64 scope link
           valid_lft forever preferred_lft forever
    pi@raspberrypi:~/nrc_pkg/script $
    

    互いにpingで疎通確認

    うまく疎通が出来ました。

6. MESH モードもある。

NRC7394 Software Package for Host mode (Linux OS)/Access Point (AP) running procedureに起動オプションが記載されています。

そこには、MESH Wifiでの起動も可能なように記載されていました。
次回は、MESH Wifi で電源起動で自動接続可能に挑戦してみます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?