RPZ-PowerMGR (Raspberry Pi用 消費電力削減/モバイルバッテリー拡張基板)

スイッチで電源ON/OFF、指定時刻に電源ON/OFF、シャットダウン後自動電源OFFを可能にする拡張基板です。Raspberry Pi(ラズパイ)やJetson Nanoの電源の課題を解決し、省電力運用を可能にします。RTCで電源OFF時も時刻を保持します。USB Type-C端子を搭載し、モバイルバッテリーでも利用できます。

Raspberry Pi / Jetson Nano電源の課題

Raspberry Pi/Jetson Nanoは便利なシングルボードコンピュータですが、次のような悩みを持ったことはありませんか?

  • USBケーブルを抜き差ししないと電源をON、OFFできない
  • ネットワークや遠隔から電源をOFFできない
  • インターネットに繋がっていないと時刻がずれる
  • 決まった時間だけ起動して消費電力を抑えたい
  • モバイルバッテリーで長時間運用したい
  • どれくらい電力を消費しているか知りたい

電源管理、省電力運用に必要な機能を網羅している「RPZ-PowerMGR」拡張基板を使えばこれらの問題を全て解決できます

特徴

機能概要図 (サイドスイッチSW3はRev2で追加)
スイッチから電源ON、OFF

スイッチを押すだけでRaspberry Pi/Jetsonを電源ON、OFFできます。電源OFF時はシャットダウン処理が自動的に実行され、その後安全に電源が切れます。

入力端子に外付スイッチの接続も可能です。ケーブル付きスイッチを利用すればレイアウトの幅が広がります。スイッチの代わりにICなどから信号を入力することでも電源ON、OFFできます。

外付けスイッチ接続例 (外付スイッチは付属しません)
シャットダウン後に自動電源OFF

Raspberry Pi/Jetsonのシャットダウンを検知して自動的に電源OFFできます。ネットワークや遠隔からでも電源OFFが可能になるほか、プログラムの最後にシャットダウン命令を記述しておくことで、プログラム実行後に電源OFFさせることができます。

指定日時に電源ON、OFF

あらかじめ登録した日時、時刻に電源ON、OFFできます。必要なときだけ電源をONすれば省電力でRaspberry Pi/Jetsonを運用できます。モバイルバッテリーで長期間の稼働が可能になります。

月、日、曜日、時、分を自由に指定でき、毎週、毎日、毎時のような指定も可能で、複雑なパターンに対応できます。例えば以下のようなスケジュールが簡単に作成できます。

  • 毎時0分に電源ON、10分に電源OFF
  • 毎日8:15に電源ON、17:40に電源OFF
  • 毎週月、水、金の20:00に電源ON
  • 毎月15日の0:00に電源ON
  • 1月15日の9:00に電源ON
  • 現在時刻から10分後に電源OFF、60分後に電源ON

他社製品の多くはRTCのアラーム機能を使う構成です。そのためスケジュールを同時に1個しか登録できず、起動するたびに次の時刻を登録するプログラムを記述しなければなりません。

一方、RPZ-PowerMGRは専用開発したスケジューラーを搭載しています。そのためスケジュールを最大250個登録可能で、曜日指定などの複雑なスケジュールにも対応できます。一度登録しておけばRaspberry Pi/Jetson側からの管理は不要です。CSVファイルインポート、エクスポート機能もあるので表計算ソフトを使ってスケジュール作成、管理でき、同じ設定を複数台に展開できます。

RTC(時刻保持)

RTC(時計)機能を搭載しており、インターネットに接続されていなくても、電源OFFから復帰した際に自動的に正しい時刻に設定できます。インターネットに接続されている環境では、自動的に時刻サーバーの正確な時刻に同期します。

バックアップコンデンサーに電力を蓄えておくことで、完全に電源から切断されても時刻を保持します。保持期間は電源切断から100時間程度となります。コイン電池を使用しないのでメンテナンスフリーです。

超低消費電力

超低消費電力のIC、回路設計により、Raspberry Pi/Jetson電源OFF時のRPZ-PowerMGRの消費電力をわずか5uA以下に抑えました。長期間の省電力運用を可能にします。(これとは別にモバイルバッテリー側の電圧供給回路での電力消費が生じる場合があります。)

モバイルバッテリーWake up

モバイルバッテリーの多くは消費電流が低くなるとスリープに入り電源が切断されてしまうため、間欠動作させることができません。スリープしないようにダミー電流を流す機能を持つ製品もありますが、電源OFF時にも電力を消費してしまう問題があります。

RPZ-PowerMGRにはモバイルバッテリーWake up機能を搭載しており、スリープ状態のモバイルバッテリーを起動させることができるので、モバイルバッテリーを使った間欠動作が可能です。(動作確認済モデルをご確認下さい)

Raspberry Pi / Jetson消費電流測定

モバイルバッテリーでRasbperry Pi/Jetsonを運用する場合に気になるのは実際にどの程度電力を消費しているかどうかでしょう。RPZ-PowerMGRはRaspberry Pi/Jetsonの消費電流を測定できるので、どの程度の期間バッテリーで運用できるか試算したり、電力消費を下げる構成を探すことができます。

実際に測定できるのは以下の電流値です。

  • 現在の消費電流値 (測定は1秒間隔)
  • Raspberry Pi/Jetsonを電源ONしてから1秒おきの電流値のデータ (最大1時間分)
  • 指定したタイミングから1秒おきの電流値のデータ (最大1時間分)
Raspberry Pi Zero対応 & 拡張基板/HATスタック

基板サイズは消費電力の低いRasbperry Pi Zeroに対応しています。

RPZ-PowerMGRの上に別の拡張基板/HATをスタック(積み重ね)できます。付属アダプターを接続するだけなのではんだ付けは不要です。

Raspberry Pi Zero WHに装着
別の拡張基板を3段目にスタック
コントロールツール付属

Raspberry Pi/JetsonからRPZ-PowerMGRの設定の変更、ON/OFFスケジュールの登録、電流測定などが一括して行えるコントロールツールが付属するので、すぐに使い始めることができます。

また、I2Cの仕様を公開しているので、ご自身のプログラムから制御することもできます。

電源自動リカバリー

意図しない電源切断やバッテリー切れとなっても、電源再投入やバッテリー回復後、すみやかにRaspberry Pi/Jetsonを起動し、運用を再開することができます。

他社製品との比較

他社製品やRaspberry Pi 5内蔵機能はモバイルバッテリーに最適化されておらず、モバイルバッテリーがスリープしてしまうと起動できません。スリープしないモバイルバッテリーでは動作可能ですが、製品自体やモバイルバッテリーの待機電力が大きいため、動作していない間も徐々にバッテリーを消耗してしまいます。

RPZ-PowerMGRであれば、スリープしたモバイルバッテリーからの起動が可能であり、製品自体やモバイルバッテリーの待機電力を大幅に抑えることで長期運用が可能になります。また、設定や管理が容易なスケジューラーや、電流測定機能など、実使用を見据えた設計を行っています。

他社製品、およびRaspberry Pi 5内蔵機能との比較
Jetson Nano内蔵機能との比較

仕様

項目仕様
対応ハードウェア40ピンコネクタを搭載したRaspberry Piシリーズ、およびJetson Nano
動作確認を行っている製品:
– Raspberry Pi 5
– Raspberry Pi 4 Model B
– Raspberry Pi 3 Model B/B+
– Raspberry Pi Zero 2 W
– Raspberry Pi Zero W/WH
– Raspberry Pi Zero
– Jetson Nano Developer Kit B01
– Jetson Nano 2GB Developer Kit
(Jetson Orin Nanoは非対応です)
対応OSRaspberry Pi: 2020年以降にリリースされたRaspberry Pi OS
Jetson Nano: JetPack4.6
入力電圧4.75 – 5.25V
最大電流3A (*3)
消費電流 Raspberry Pi/Jetson電源OFF時5uA (*1)
消費電流 Raspberry Pi/Jetson電源OFF
モバイルバッテリーWake up使用時
10uA (*1)
消費電流 Raspberry Pi/Jetson電源ON時10mA
I2Cアドレス0x20 / 0x22 から選択
I2Cアドレス RTC0x68
I2CスピードNormal Mode 100kbps
外部スイッチ/信号入力 (ESW)SW OFF : Hi-Z / 3.3V
SW ON : GND
RTC水晶振動子精度+/-20ppm (*2)
電源切断後RTC時刻保持期間100h (*1)

(*1) バックアップコンデンサーが充電された状態、室温での標準値. モバイルバッテリーなどの電源側で生じる電力消費は含みません.
(*2) 水晶振動子の特性上、温度変化によりこれ以上のずれとなる可能性があります

(*3) Raspberry Pi 5の5Aモードには非対応です

購入

RPZ-PowerMGR拡張基板本体と、Raspberry Pi/Jetson接続用アダプターのセットになります。

まとまった数量をご希望の方は、見積もり依頼よりご連絡ください。

Rev2

Rev1の機能強化/上位互換版です。

Rev1

Rev1の生産は終了しました。上位互換版のRev2をご検討ください。

組み立て

アダプターの取り付け

以下の写真のように、付属アダプターをRPZ-PowerMGRに取り付けます。

アダプターをRPZ-PowerMGRに取り付けた状態
Raspberry Pi / Jetsonに取り付け

付属アダプターを装着したRPZ-PowerMGRを、Raspberry Pi/Jetsonの40ピンコネクターに取り付けます。

Raspberry Pi 4 ModelBに取り付けた例
Jetson Nanoに取り付けた例

Raspberry Pi Zeroに関してはアダプターを使わずに直接ピンヘッダーに取り付けて高さを低くすることができます。Raspberry PiとRPZ-PowerMGRの間に高さ4mmのスペーサーを挟むことを推奨しております。この取り付け方法の場合、mini HDMI端子は使用できません。

アダプターを使わずにRaspberry Py Zero WHに装着
電源ケーブルの取り付け

RPZ-PowerMGRのUSB Type-C端子(J2)に電源用のUSBケーブルを接続します。Raspberry Pi/Jetson本体の電源端子には何も接続しないで下さい

電源ケーブルの取り付け
電源ON

DSW1の6つのスイッチ全てがOFFにセットされていることを確認します。

青スイッチ(SW2)、もしくはサイドスイッチ(SW3)のどちらかを押すとLEDが点灯してRaspberry Pi/Jetsonに電源が供給されて起動します。Rev1にはサイドスイッチはありませんので青スイッチを使って下さい。

Jetson Nanoをお使いの場合はセットアップ(Jetson Nano)に進んでください。

セットアップ(Raspberry Pi)

コントロールツールのインストール

RPZ-PowerMGRと通信して制御、スケジュール管理するためのコントロールツールをインストールします。以下の記事を参考にI2Cを有効化して下さい。

ターミナルを開き、以下$に続くコマンドを実行します。最新版へのアップグレードも同じコマンドで可能です。

$ sudo python3 -m pip install -U cgpmgr --break-system-packages

エラーが出る場合は最後のオプションを指定せずにお試しください。

$ sudo python3 -m pip install -U cgpmgr
config.txt

config.txtファイルをスーパーユーザーで開きます。パスはOSバージョンによって異なりますので、以下を参照してください。

OSバージョンパス
Bookworm(最新版)/boot/firmware/config.txt
Bullseye (Legacy版)、Bookworm(最新版)の一部/boot/config.txt

config.txtに以下の内容を追記します。

dtoverlay=gpio-shutdown,gpio_pin=16
dtoverlay=gpio-poweroff,gpiopin=26
dtoverlay=i2c-rtc,ds1307

1行目がRPZ-PowerMGRからのシャットダウン要求信号のGPIO番号(デフォルト16)、2行目がRaspberry Piからのシャットダウン完了信号のGPIO番号(デフォルト26)を意味しています。(1行目がgpio_pin、2行目がgpiopinとなっていますが誤記ではありません) 他の拡張基板/HATとGPIOが重なる場合は、16, 17, 26, 27から2つを自由に選択してください。設定した番号は後述のコントロールツールの初期設定で使うので、メモしておきます。

3行目はRTCの設定です。I2Cアドレスは0x68で、DS1307互換デバイスとして動作します。

Raspberry Pi 5の場合はさらに以下の1行をconfig.txtに追記します。本体付属のRTCを無効化する設定です。

dtparam=rtc=off

設定ファイルの編集方法が分からない場合は、以下の記事を参考にして下さい。

config.txtを編集したら、変更を反映させるためRaspberry Piを再起動します。

コントロールツールの設定

「cgpmgr」コマンドでPowerMGRの設定を行うことができます。

以下コマンドを実行します。-r でシャットダウン要求信号のGPIO番号(デフォルト16)、-c でシャットダウン完了信号のGPIO番号(デフォルト26)を設定しています。先ほどconfig.txtで指定した番号と一致するようにして下さい。

$ cgpmgr cf -r 16 -c 26
OSについて

最新OS Bookwormの古いバージョンと一部Raspberry Piモデルの組み合わせにおいて、シャットダウン要求に反応しない場合があります。Bookwormをお使いの場合は以下のコマンドでOSを最新にアップデートしてください。

$ sudo apt update
$ sudo apt upgrade -y

Raspberry Piのセットアップは以上です。使い方に進んでください。

セットアップ(Jetson Nano)

JetsonでJetpack4.6以外をお使いの場合はJetPack4.6をインストールし直し、以下のコマンドでシステムを最新にしてください。

$ sudo apt update
$ sudo apt upgrade -y
$ sudo reboot
コントロールツールのインストール

RPZ-PowerMGRと通信して制御、スケジュール管理するためのコントロールツールをインストールします。ターミナルを開き、以下$に続くコマンドを実行します。最新版へのアップグレードも同じコマンドで可能です。

$ sudo apt update
$ sudo apt install python3-pip
$ sudo python3 -m pip install -U cgpmgr
RPZ-PowerMGR情報の確認

以下のように「cgpmgr cf」コマンドを実行して、RPZ-PowerMGRの情報が表示されればOKです。

$ cgpmgr cf
コンフィグ情報
  ファームウェアバージョン: 2.2
  スタートアップタイマー: 30秒
  シャットダウンタイマー: 150秒
  シャットダウン要求信号: 無効
  シャットダウン完了信号: 無効
  タイムゾーン設定: 540
  電源自動リカバリー: 無効
  USB Type-Aウェイクアップ: 有効

Jetson Nanoをお使いで、表示されたファームウェアバージョンが以下のいずれかの場合、ファームウェアをアップデートする必要がありますこちらを参考に最新のものにアップデート後、再度スイッチで電源ONしてセットアップを継続してください。

  • 1.0 – 1.4
  • 2.0 – 2.1
自動セットアップツール

RTCを使うためのカーネルのインストールや、デバイスツリーなどシステムに関わる設定が必要なため、自動セットアップツールを用意しています。ターミナルを開いて以下のコマンドを順に実行します。

$ mkdir pmgr_installer
$ cd pmgr_installer
$ wget https://raw.githubusercontent.com/IndoorCorgi/cgpmgr/master/jetson_nano/pmgr_setup_nano.py
$ python3 pmgr_setup_nano.py

表示されるメッセージ、注意事項に従ってインストールを完了してください。完了したら再起動します。

インストール用に作成したpmgr_installerディレクトリは削除しても構いません。

インストール後の確認

uname -rコマンドの結果が4.9.xxx-tegra-extrtcと表示されていればカーネルが正常にインストール、適用されています。

$ uname -r
4.9.299-tegra-extrtc

以下のコマンドで、結果にrtc2が表示されていればRTCが正常に認識されています。

$ ls /dev | grep rtc
rtc
rtc0
rtc1
rtc2
コントロールツールの設定

「cgpmgr」コマンドでPowerMGRの設定を行うことができます。

以下コマンドを実行します。-r でシャットダウン要求信号のGPIO番号、-c でシャットダウン完了信号のGPIO番号(Raspberry Pi基準)を設定しています。Jetson Nanoではそれぞれ16(Pin#36)、26(Pin#37)固定となります。この2つの信号は他のハードウェアやプログラムで使用しないようにしてください。

$ cgpmgr cf -r 16 -c 26

ファームウェアバージョンが2.7もしくは1.10の場合、追加で以下のコマンドを実行して再起動処理をJetson Nano用に変更してください。

$ cgpmgr cf -b 5

使い方

セットアップが問題なく完了していれば以下の機能が使えるようになっています。

  • 電源OFFの状態で青スイッチ(SW2)かサイドスイッチ(SW3)を押すと電源ONされRaspberry Pi/Jetsonが起動します
  • 電源ONの状態で青スイッチ(SW2)かサイドスイッチ(SW3)を押すと自動的にシャットダウンが始まり、完了後に電源OFFします
  • Raspberry Pi/Jetsonをシャットダウンする操作(sudo poweroffコマンドやメニューからシャットダウンを選択)を行うと、自動的に電源OFFします
  • インターネットに接続されていない状態で電源OFFしても、次回起動時に時刻がずれなくなります

基本的な使い方、スケジュール設定や電流測定については以下の解説ページを用意しています。

スイッチでラズパイ/Jetsonの電源をON/OFF (RPZ-PowerMGR)

RPZ-PowerMGRを使って、スイッチでRaspberry Pi(ラズパイ)/Jetson Nanoの電源ON/OFFする方法の解説です。ケーブルの抜き挿しやログインして操作しなくても電源ON/OFFできるほか、リモートやプログラムからシャットダウンした際に自動で電源OFFすることもできます。不要な時は電源を切ることで省電力化が可能です。

指定時刻にラズパイ/Jetsonの電源をON/OFF (RPZ-PowerMGR)

RPZ-PowerMGRを使って、指定時刻にRaspberry Pi(ラズパイ)やJetson Nanoの電源ON/OFFする方法の解説です。決まった時間だけ起動して消費電力を抑えることが可能で、モバイルバッテリーやソーラーシステムでの運用に最適です。

Raspberry PiでRTCを使って時刻管理 (RPZ-PowerMGR)

RTC(時計)を使って、Raspberry Pi(ラズパイ)の時刻を管理する方法の解説です。RTCを使うと、インターネットに繋がっていなくても正確な時刻で運用できます。電源OFFから起動した際に自動的に時刻を設定する方法も説明します。

ラズパイ/Jetsonの消費電力測定&モバイルバッテリー稼働時間の計算 (RPZ-PowerMGR)

RPZ-PowerMGRを使って、Raspberry Pi(ラズパイ)/Jetson Nanoの消費電力を測定する方法の解説です。モバイルバッテリーでの運用可能な時間を計算し、実際の運用時間と比較しました。

以下の2つのオプション機能についての解説ページを用意しています。

電源自動リカバリーで停電やバッテリー切れから復帰 (RPZ-PowerMGR)

RPZ-PowerMGRには、自動的にRaspberry Pi/Jetsonの電源を復帰する「電源自動リカバリー」機能を搭載しています。これにより、意図しない電源切断やバッテリー切れとなっても、スイッチ操作なしで再度Raspberry Pi/Jetsonを起動し、運用を再開することが可能となります。本記事ではその仕組みと、設定方法を解説します。

USB Type-A Wake Up無効化 (RPZ-PowerMGR)

RPZ-PowerMGRはモバイルバッテリーWake up機能を搭載しているため、モバイルバッテリーを使った間欠動作が可能です。ただし、一部の使用環境では副作用でRTCが意図せずリセット(初期化)されてしまうことがあります。本記事ではそれを回避する機能について解説します。

応用例
定期撮影ラズパイカメラをモバイルバッテリーで長期運用 (RPZ-PowerMGR)

Raspberry Pi(ラズパイ)と純正カメラを使用して、定期的に撮影するタイムラプス機能を実装する方法を解説します。RPZ-PowerMGR拡張基板を使うことで、指定時刻に起動し、撮影後は自動的にシャットダウン&電源OFFします。待機時の消費電力をカットすることで、モバイルバッテリーで長期運用が可能になります。

時刻の手動設定

インターネットに接続されている場合は自動的に時刻が設定されるので、この設定は不要です。

インターネットに接続されていない環境で運用している際に時刻合わせをしたい場合などは、以下のコマンドを実行して手動で現在時刻を設定できます。

set-timeの後は現在時刻を指定します。以下は2020年12月20日、15時30分に設定する例です。NTPが有効だと設定できないので、一時的に無効にした後有効に戻しています。

$ sudo timedatectl set-ntp false
$ sudo timedatectl set-time "2020-12-20 15:30:00"
$ sudo timedatectl set-ntp true

timedatectlコマンドでLocal timeが現在時刻になっていればOKです。

$ timedatectl
               Local time: 日 2020-12-20 15:30:03 JST
           Universal time: 日 2020-12-20 06:30:03 UTC
                 RTC time: 日 2020-12-20 06:30:03
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: no
              NTP service: active
          RTC in local TZ: no

I2Cアドレス切り替え

他の拡張基板/HATとI2Cアドレスが重なる場合は、DSW1-6(下の写真の6つ並んでいる小スイッチの、一番右)をON(上側)にセットした状態で電源ONすることで0x22に切り替わります。Indoor Corgi製品についてはアドレスが重なるものはありません。0x22を使用する場合、後述のコントロールツール cgpmgr を使う際に「-a」オプションを指定する必要があります。

I2Cアドレス0x22を使用している場合は、コントロールツールcgpmgrコマンド実行時、常に-aオプションを追加で指定してください。

$ cgpmgr cf -a -r 16 -c 26    (I2Cアドレス0x22を使用している場合)

セーフモード

セーフモードスイッチを使うと、RPZ-PowerMGRのコンフィグ情報、スケジュールを全て初期化することができます。間違った設定でうまく起動しなくなった場合などにお使い下さい。

  1. Raspberry Pi/Jetsonが動作中の場合、sudo poweroffコマンドを実行してOSをシャットダウンした状態にしてください。
  2. LED2が点灯中(Raspberry Pi/Jetsonに通電)されている場合、USBケーブルを抜いてLED2を消灯させた後、再度USBケーブルを挿して下さい。
  3. DSW1-5(下の写真の6つ並んでいる小スイッチのうち、右から2番目)をONにセットします。
  4. 白スイッチ(SW1)を押します。RPZ-PowerMGRがセーフモードで起動し、コンフィグ情報、スケジュールが初期化されます。
  5. DSW1-5をOFFに戻します。
セーフモードで操作するスイッチ

ファームウェアアップデート

RPZ-PowerMGRの制御プログラム(ファームウェア)アップデート手順はこちらを参照して下さい。動作の改善のため新しいファームウェアをリリースする場合があり、アップデートすることで最新のものを適用できます。

モバイルバッテリー

Rev2で動作確認済のモデル
Rev1で動作確認済モデル

開発者向け資料

注意事項

開発依頼

本製品への機能追加などのカスタマイズや、本製品を使ったシステムの開発依頼、その他ハードウェア、ソフトウェアの開発については、有償にて承っております。ハードウェア、ソフトウェア受託開発をご参照下さい。

関連ページ

RPi TPH Monitor Rev2 (Raspberry Pi用 温度/湿度/気圧/赤外線 ホームIoT拡張ボード)

動作をプログラミング可能な、Raspberry Pi(ラズパイ)用ホームIoT拡張ボードです。温度、湿度、気圧センサー、赤外線送信、受信機能を搭載。温度が上がったらエアコンをオンにする、外出先から家電の操作をする、気温や湿度を記録する、といった使い方が可能です。ディスプレイやLEDに情報表示、スイッチを押したら特定の処理をすることもできます。

SCD41 CO2センサーとラズパイで二酸化炭素濃度を測定する

Indoor Corgiのセンサー制御ソフトウェア「cgsensor」を利用して、SCD41 CO2センサーで二酸化炭素濃度を測定したり、センサーの校正や設定を変更する方法を解説します。コマンドラインツールを使って1行もコードを書かずに測定や記録ができるほか、Pythonパッケージを使えばご自身のプログラムから簡単にセンサーを制御できます。

CG-FusionLogger (加速度/姿勢/回転/地磁気/気温/湿度/気圧/空気品質 マルチセンサーロガー)

ArduinoIDEで動作を自由にプログラミング可能な、19種類以上のセンサーに対応したマルチセンサーロガーです。加速度/姿勢/回転/地磁気/気温/湿度/気圧/空気品質などのデータをmicroSDに記録できます。USB-Aポートに直挿し可能な設計となっており、車などモバイルで運用可能です。