Skip to content

botanicfields/BF-018A

Repository files navigation

JJY Simulator for M5Atom

ATOMS3 Lite, ATOM Lite/Matrixで動作する標準電波(JJY)シミュレータ

※ ATOMS3(無印)には対応しておりません。

2025/8/15 修正

  • Rev.4を追加しました。M5Stack 3.x(Boards Manager)に対応しました。Rev.4はATOMS3 Liteで使用いただけます。
  • BF-018ARev3.inoを修正しました。M5Atom Lite/Matrixの判定を改善しました。

2025/3/03 修正

  • BF-018ARev3.ino を修正しました。M5Unifiedの仕様変更に対応しcfg.serial_baudrateの指定を追加しました。

2024/3/20 修正

  • BF-018ARev3.ino を修正しました。コンパイラ警告レベルをデフォルトよりも上げると、Serial.printf()の%d指定でエラーを検出していました。

2024/3/12 修正

  • BF-018ARev3にアップデートしました。

Rev.4

  • フォルダ: BF-018ARev4
  • Boards Managerで、M5Stack 3.xを選択してください。
  • ATOMS3 Liteで使用いただけます。
  • M5Atom Lite/Matrixは、現状LEDが点灯しない不具合がありますので、Rev.3をお使いください。

動作確認状況:

tool item 2025/8/15
Application Arduino-IDE 2.3.6
Boards Manager M5Stack by M5Stack official 3.2.2
Library Manager M5Unified by M5Stack 0.2.7
Library Manager M5GFX by M5Stack 0.2.9
Library Manager FastLED by Daniel Garcia 3.10.1
Library Manager WiFiManager by tzapu 2.0.17

Rev.3

  • フォルダ: BF-018ARev3
  • Boards Managerで、M5Stack 2.xを選択してください。
  • Library Managerで、M5Unified 0.2.5, M5GFX 0.2.6を選択してください。
  • M5Atom Lite/Matrix, ATOMS3 Liteで使用いいただけます。

動作確認状況:

tool item 2025/8/15
Application Arduino-IDE 2.3.6
Boards Manager M5Stack by M5Stack official 2.1.4
Library Manager M5Unified by M5Stack 0.2.5
Library Manager M5GFX by M5Stack 0.2.6
Library Manager FastLED by Daniel Garcia 3.10.1
Library Manager WiFiManager by tzapu 2.0.17

Rev.2

  • フォルダ: BF-018ARev2
  • Rev.3以降をご使用ください。

Rev.1(無印)

  • フォルダ: BF-018A
  • Rev.3以降をご使用ください。

1. 概要

 M5Atomで電波時計のためのJJY信号もどきを生成します。JJY信号が届かないところにある電波時計の時刻合わせができます。Wifi経由のNTPで時刻を取得し、GPIOからJJY信号を出力します。

参考: Qiita 標準電波 JJY もどきを M5StickC / M5Atom の Ticker で生成する

2. ソフトウェア

 開発環境やライブラリの情報は、各Rev.の欄を参照ください。

3. ハードウェア

 JJY信号の送信にはアンテナが必要です。GPIO22とGND間に1kΩ程度の抵抗を途中に挟んで1m程度の電線を接続して実験できます。電線を電波時計の至近距離に這わせると電波時計が電線からの磁界を受信してくれます。

3.1 プリント基板

 M5Atomを搭載可能なプリント基板を製作しました。

  • M5Atom Liteを搭載
    [PCB_with_M5AtomLite]

  • M5Atom Matrixを搭載
    [PCB_with_M5AtomMatrix]

4. 動作

  • 電源投入またはリセット後、まずWifi接続の動作に入ります
  • Wifi接続が完了後、NTPで日時を取得し、標準信号の送出を開始します
  • JJY信号オンを内蔵LEDでモニターできます。M5Atom Matrixでは、0番のLEDのみを使用しています
    Rev1の動作(Rev2は「8. Rev.2変更内容」を参照):

    青: JJY信号の送出中を示します
    赤: NTPによる時刻取得に失敗すると点灯します
    黄: Wifi接続が切れると点灯します(赤+緑)

動作例

5. Wifi 接続

 tzapu/WiFiManagerを使用しています。使い方は、tzapu/WiFiManagerの説明を参照ください。

参考: GitHub tzapu/WiFiManager

大まかな流れ:

(1) M5Atomが、まずは前回接続したアクセスポイントに接続を試みる
(2) 接続できない場合、M5Atom自身がアクセスポイントとなりスマートホン等からの接続を待つ

(2-1) スマートホン等で、アクセスポイントとなったM5Atomに接続する
※ SSID: Chip IDに基づく名前、password/key: なし
(2-2) ブラウザでIPアドレス192.168.4.1を開く
(2-3) M5Atomが接続すべきSSID/keyを入力する

(3) M5Atomが指定されたSSID/keyでWi-Fiに接続する

5. LCD

 M5Atom版では外付けLCDを使用していません。

6. LED

 ボタンでLEDによるモニターをオン・オフできます。

7. シリアルモニタ

 動作の状況を監視できます。

8. その他

(1) WiFi接続についてのリカバリ処理

 WiFiのステータスに応じたリカバリ処理を追加しました。リカバリ処理には5分、10分、あるいはWiFiアクセスポイントが回復するまでなど、長時間を要する場合があります。放置して、いつの間にか正常動作をしていることを目指しています。リカバリ処理の内容は試行錯誤に基づくもので、必ずしもベストではありません。アドバイスなどありましたら是非お知らせください。

参考: Qiita ESP32のWiFiおよびtzapu/WiFiManagerにおいて回復処理を試行錯誤した

(2) RTCの利用

 電源投入時やリセット時においてWiFiが一時的に接続できないときでも、RTCの時刻に基づいてJJY信号を発信します。このための準備として、NTPの時刻同期のタイミングでRTCの時刻をアップデートします。RTCは、直近のアップデートに基づいた現在時刻を保持しています。M5AtomのGROVEポートにRTCユニットを接続して利用できます。RTCユニットを20cmのGROVEケーブルで接続した場合は動作が不安定になり、10cmのケーブルで安定した経験があります。

利用可能なRTCユニットの例

参考: Qiita ESP32 において NTP の時刻同期を捕まえて RTC を更新する

[RTCモジュール]

(3) SSID/Keyを消去する操作

 接続先のWiFiアクセスポイントを変更する場合、SSID/Keyの設定を変更します。古いアクセスポイントが撤去済の場合、WiFiManagerのconfigration portalが自動的に起動します。古いアクセスポイントが稼働中の場合、まずEEPROMに保存されたSSID/Keyの消去することで新規設定ができます。EEPROMのSSID/Keyを消去するには、ボタンを押しながらリセットボタンを押しLEDが緑色に点灯するまでボタンを押し続けます。"configuration portal"が起動しています。

(4) 40kHzを使用

 JJY信号は、福島県の送信所から40kHz、佐賀県の送信所から60kHzで送信されています。PWM周波数は40kHzとしています。ESP32では60KHzぴったりの信号を生成できませんが、かなり近い周波数で生成できます。東日本の場合、疑似JJY信号を60kHzとすることで、福島からの信号に同期したのか、疑似信号に同期したのかを区別することができます。疑似信号を60kHzに設定するには、BF-018ARevN.inoのjjy_frequencyを60000に修正ください。

// for TCO(Time Code Output)
const uint32_t jjy_frequency(40000); // 40kHz(east), 60kHz(west)

参考: Qiita ESP32においてLEDC(LED PWM Controller)に設定する分解能をExcelシートで検討する

(5) LED表示

  • WiFiの接続状態を表示
    WL_CONNECTED以外の場合、赤LEDの点灯・点滅で表示
  • config portalの起動時、緑LEDを点灯
  • NTP同期待ち時、緑LEDを点滅

詳細: [JJYシミュレータの状態表示]

(6) M5AtomのWi-Fi接続が不安定となる問題への対策

 M5AtomにはWi-Fiの出力が低下し接続が不安定になる問題があります。USBシリアル変換用のCH552のファームウェア改善による対策が進んでいると期待されますが、未対策の既出荷品も多い状況です。対策としてGPIO0にLOWを出力する処理をsetup()の冒頭に追加しました。

参考情報

以上

Releases

No releases published

Packages

No packages published