ぶろぐ

Stratum1のなんちゃってNTPサーバーを作る

インターネットに繋がらない環境でもPCやMac、マイコンなどで正確な時刻合わせを行いたい(*´ェ`)

GPSから時刻を取得してNTPサーバを作れば良さそう(*゚ェ゚*) ということで作ってみた(*゚ェ゚*)

使用部品は
・GPS受信機 GT-505GGBL5-DR-N 1つ
・マイコンボード W55RP20-EVB-Pico 1つ

GT-505GGBL5-DR-Nは1PPS出力も付いていてUARTで通信する(*゚ェ゚*)
1PPS出力を使用して精度を上げて信号確認用にLEDも付けてみると1Hzでピカピカしている(*´ェ`)

W55RP20-EVB-Pico は Raspberry Pi Pico互換のマイコンボードでRP2040とTCP/IPコントローラーW5500を統合したSoC「W55RP20」を搭載している(*゚ェ゚*)

Raspberry Pi Picoにイーサネット接続機能も使えて便利(*゚ェ゚*)

Raspberry Pi Pico側でNTPサーバを稼働させて各端末からはNTPクライアントで接続してもらえば良い(*´ェ`)

GPS/GNSSやNTPサーバの情報が見られたら良いなと思ったので簡易HTTPサーバも搭載してみた(*゚ェ゚*)

こうなるとネットワーク周りの設定値も変えられると便利かもと思い実装してみた(*´ェ`)

sntpコマンドで確認すると

$ sntp -d 192.168.11.88
sntp_exchange {
        result: 0 (Success)
        header: 24 (li:0 vn:4 mode:4)
       stratum: 01 (1)
          poll: 00 (1)
     precision: FFFFFFEC (9.536743e-07)
         delay: 0000.0000 (0.000000000)
    dispersion: 0000.5F37 (0.371932983)
           ref: 47505373 ("GPSs")
         t_ref: EDCE4F6E.E2A6DED8 (3989720942.885358741)
            t1: EDCE4F6E.7ABC0E38 (3989720942.479431999)
            t2: EDCE4F6E.E2A6DED8 (3989720942.885358741)
            t3: EDCE4F6E.E2A76510 (3989720942.885366741)
            t4: EDCE4F6E.7DB77C02 (3989720942.491080999)
        offset: 0000000000000000.666D5CD700000000 (0.400106242)
         delay: 0000000000000000.02FAE79200000000 (0.011641000)
          mean: 00000000EDCE4F6E.E2A721F400000000 (3989720942.885362625)
         error: 0000000000000000.5F37000000000000 (0.371932983)
          addr: 192.168.11.88
}
sntp_exchange {
        result: 0 (Success)
        header: 24 (li:0 vn:4 mode:4)
       stratum: 01 (1)
          poll: 00 (1)
     precision: FFFFFFEC (9.536743e-07)
         delay: 0000.0000 (0.000000000)
    dispersion: 0000.695F (0.411605835)
           ref: 47505373 ("GPSs")
         t_ref: EDCE4F6E.ECF55EB4 (3989720942.925619048)
            t1: EDCE4F6E.7DC810A5 (3989720942.491333999)
            t2: EDCE4F6E.ECF55EB4 (3989720942.925619048)
            t3: EDCE4F6E.ECF5B297 (3989720942.925624048)
            t4: EDCE4F6E.88432CA5 (3989720942.532274999)
        offset: 0000000000000000.69EFEA0080000000 (0.413817048)
         delay: 0000000000000000.0A7AC81D00000000 (0.040936000)
          mean: 00000000EDCE4F6E.ECF588A580000000 (3989720942.925621510)
         error: 0000000000000000.695F000000000000 (0.411605835)
          addr: 192.168.11.88
}
sntp_exchange {
        result: 0 (Success)
        header: 24 (li:0 vn:4 mode:4)
       stratum: 01 (1)
          poll: 00 (1)
     precision: FFFFFFEC (9.536743e-07)
         delay: 0000.0000 (0.000000000)
    dispersion: 0000.7387 (0.451278687)
           ref: 47505373 ("GPSs")
         t_ref: EDCE4F6E.F7429FCB (3989720942.965860354)
            t1: EDCE4F6E.885F394B (3989720942.532702999)
            t2: EDCE4F6E.F7429FCB (3989720942.965860354)
            t3: EDCE4F6E.F7430475 (3989720942.965866354)
            t4: EDCE4F6E.928900C5 (3989720942.572402999)
        offset: 0000000000000000.69CEB51800000000 (0.413310355)
         delay: 0000000000000000.0A2962D000000000 (0.039694000)
          mean: 00000000EDCE4F6E.F742D22000000000 (3989720942.965863228)
         error: 0000000000000000.7387000000000000 (0.451278687)
          addr: 192.168.11.88
}
sntp_exchange {
        result: 0 (Success)
        header: 24 (li:0 vn:4 mode:4)
       stratum: 01 (1)
          poll: 00 (1)
     precision: FFFFFFEC (9.536743e-07)
         delay: 0000.0000 (0.000000000)
    dispersion: 0000.7DF0 (0.491943359)
           ref: 47505373 ("GPSs")
         t_ref: EDCE4F6E.01911558 (3989720942.006120046)
            t1: EDCE4F6E.92B4FA48 (3989720942.573073999)
            t2: EDCE4F6E.01911558 (3989720942.006120046)
            t3: EDCE4F6E.01917A02 (3989720942.006126046)
            t4: EDCE4F6E.9D425F20 (3989720942.614293999)
        offset: FFFFFFFFFFFFFFFF.69959AF900000000 (-0.587560953)
         delay: 0000000000000000.0A8D002E00000000 (0.041214000)
          mean: 00000000EDCE4F6E.019147AD00000000 (3989720942.006123066)
         error: 0000000000000000.7DF0000000000000 (0.491943359)
          addr: 192.168.11.88
}
sntp_exchange {
        result: 0 (Success)
        header: 24 (li:0 vn:4 mode:4)
       stratum: 01 (1)
          poll: 00 (1)
     precision: FFFFFFEC (9.536743e-07)
         delay: 0000.0000 (0.000000000)
    dispersion: 0000.8818 (0.531616211)
           ref: 47505373 ("GPSs")
         t_ref: EDCE4F6E.0BDEAA52 (3989720942.046366353)
            t1: EDCE4F6E.9D5A187A (3989720942.614655999)
            t2: EDCE4F6E.0BDEAA52 (3989720942.046366353)
            t3: EDCE4F6E.0BDEED6E (3989720942.046370353)
            t4: EDCE4F6E.A723FEE2 (3989720942.652892999)
        offset: FFFFFFFFFFFFFFFF.699FC03200000000 (-0.587406147)
         delay: 0000000000000000.09C9A34C00000000 (0.038233000)
          mean: 00000000EDCE4F6E.0BDECBE000000000 (3989720942.046368122)
         error: 0000000000000000.8818000000000000 (0.531616211)
          addr: 192.168.11.88
}
selected:
sntp_exchange {
        result: 0 (Success)
        header: 24 (li:0 vn:4 mode:4)
       stratum: 01 (1)
          poll: 00 (1)
     precision: FFFFFFEC (9.536743e-07)
         delay: 0000.0000 (0.000000000)
    dispersion: 0000.5F37 (0.371932983)
           ref: 47505373 ("GPSs")
         t_ref: EDCE4F6E.E2A6DED8 (3989720942.885358741)
            t1: EDCE4F6E.7ABC0E38 (3989720942.479431999)
            t2: EDCE4F6E.E2A6DED8 (3989720942.885358741)
            t3: EDCE4F6E.E2A76510 (3989720942.885366741)
            t4: EDCE4F6E.7DB77C02 (3989720942.491080999)
        offset: 0000000000000000.666D5CD700000000 (0.400106242)
         delay: 0000000000000000.02FAE79200000000 (0.011641000)
          mean: 00000000EDCE4F6E.E2A721F400000000 (3989720942.885362625)
         error: 0000000000000000.5F37000000000000 (0.371932983)
          addr: 192.168.11.88
}
+0.400106 +/- 0.383574 192.168.11.88 192.168.11.88

stratum: 01 (1)というのが確認できる(*´ェ`)自分で作ったのだから当たり前だけど…

DWARF3というスマート望遠鏡を買ってみた

10万円を切ってるスマート望遠鏡があると聞いて買ってしまった(*´ェ`)
(スマート望遠鏡自体初めて聞いた)

本体以外に三脚も一緒に購入して10万円以下だった(*゚ェ゚*)

初めて見た時は思っていた望遠鏡の形と違って驚いたけれども随分コンパクトだなという印象∑(*゚ェ゚*)

DWARF3

iPhoneからアプリを通して撮影したい天体を選択して撮影ボタンを押すだけというシンプル操作で初めての天体撮影でもここまで撮れるのか∑(*゚ェ゚*)

昼間に太陽を撮ってみた(*´ェ`)

Sun
Sun 2026年3月14日撮影

 

マルカリアンの鎖

Markarian's Chain
Markarian’s Chain 2026年3月15日撮影

 

M81

M 81
M81 2026年3月19日撮影

 

M42

M 42
M42 2026年3月20日撮影

 

ばら星雲

NGC 2237
NGC2237 2026年3月20日撮影

すぐそこにあったのに認識できていなかった宇宙を見れた∑(*゚ェ゚*)

二酸化炭素濃度を表示させてみる

突然部屋の二酸化炭素濃度が気になってきて表示させてみたかったので作ってみた(*゚ェ゚*)
使用した部品は
・コネクター S4B-XH-A 2つ
・コネクタハウジング XHP-4 2つ
・抵抗10kΩ 2つ
・XIAO RP2350 1つ
・5V出力昇圧DCDCコンバーター CC3-0305SF-E 1つ
・温湿度センサー AHT25 1つ
・二酸化炭素センサー MH-Z19E 1つ

表示部分は気圧計を作ったときにできたものを使用して今回は今回は測定の基盤のみを作成
回路図はこんな感じで

配線はこんな感じにして

さくさくっと部品を実装して

動作している時の温度はどうなっているのだろうと気になってHIKMICROのE02というサーモグラフィーカメラを購入して見てみた(*゚ェ゚*)

表示部分と組み合わせて2階建て

何日か様子をみていると朝方に数値は3桁の700ぐらいで夜になると2000近くの値になっていた(*´ェ`)

続・気圧計に温湿度計をくっつける

7セグメント側の基板から「ジー」というノイズが出ていた問題が解決した(゚ェ゚)

LEDドライバーのTM1640が3.3Vのままでも動作したので5V出力昇圧DCDCコンバーターを外してみたところ「ジー」というノイズが無くなった(*´ェ`)

というわけで回路図からDCDCコンバータを削除

基板の配線もこのように引き直し(*´ェ`)

基板を発注して作り直し

5Vから3.3Vに変更するとほんの少し暗くなったかなという感じ(*´ェ`)

気圧計に温湿度計をくっつける

以前作成した気圧計に温度と湿度が分かると良いと聞きまして作ってみました(*´ェ`)

使用した部品は
・4桁7セグメントLEDカソードコモン OSL40562 1つ
・1桁7セグメントLEDカソードコモン OSL10326 4つ
・LEDドライバー TM1640 1つ
・抵抗10kΩ 4つ
・キャパシタ0.1μF 1つ
・キャパシタ100μF 1つ
・コネクター S4B-XH-A 3つ
・コネクタハウジング XHP-4 3つ
・XIAO RP2350 1つ
・5V出力昇圧DCDCコンバーター AE-XCL102D503CR-G 1つ
・気圧センサー AE-LPS25HB 1つ
・温湿度センサー AHT25 1つ

ただ追加するだけではなく表示部分と計測デバイスを切り離してみようと思い別々の基板に実装してみた∑(゚ェ゚)

まず数値の表示部分はこんな感じで

計測デバイスの方はこんな感じ(*´ェ`)

表示部分から先に作って届いた基板はこんな感じ

ソルダーペーストを塗り塗り

綺麗に盛れた(*´ェ`)

部品を載せて

ヒーターで半田を溶かして表面実装部品は終わり(*´ェ`)ラクチン

後の部品は手半田付けして動作テストを行う(*´ェ`)
「ジー」というノイズが出てる。。。これはなんとかしたい(*゚ェ゚*)

計測デバイスの方は表面実装部品はキャパシタが2つだけなので手半田付けした(*´ェ`)

二階建て構成でなかなか良い感じ(*゚ェ゚*)