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つだけなので手半田付けした(*´ェ`)

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

DIY PC 2025

そろそろ新しいPCが欲しいなと思って小さめのケースを探していたところ見た目に惚れて即買いしてしまったケース(*´ェ`)

Fractal Design の Terra Jade

届いたのは昨年の10月1日で、このケースに合うパーツを揃えないといけないと思い買い集めたのが昨年の年末(*゚ェ゚*)

マザーボード ASUS(エイスース) ROG STRIX Z890-I GAMING WIFI
CPU intel(インテル) Core Ultra 7 265K BX80768265K
CPUファン noctua(ノクチュア) NH-L12Sx77
メモリ G.SKILL(ジースキル) F5-5600J4645A32GX2-RS5K 64GB DDR5-5600 (32GB x2)
電源 Corsair(コルセア) SF750 Platinum ATX3.1 CP-9020284-JP
SSD WESTERN DIGITAL(ウエスタンデジタル) WD_Black SN850X NVMe SSD WDS200T2X0E x2
WESTERN DIGITAL(ウエスタンデジタル) WD Blue SATA SSD WDS200T3B0A-EC SA510
ビデオカード ASUS(エイスース) RTX4060-O8G-LP-BRK
OS Windows 11 Pro
PCケース Fractal Design(フラクタルデザイン) Terra Jade
PCケースファン Noctua(ノクチュア) NF-A12x15 PWM chromax.black.swap

よし年末年始で組み立てよう!ワク₍₍ (ง ˘ω˘ )ว ⁾⁾ワク

と楽しみにしていたところ電源だけが入荷待ち(*´ェ`)

それから1ヶ月が経ち2月に入ってもまだ入荷予定は未定の連絡。。。

ぐむむ、おあずけ状態に我慢できずに他店で同じものを購入

すると2日後に最初に注文していたところから発送の連絡

というわけで電源は2つ手元にある状態。。。悲しい

小型PCを組み立てるのは初めてで、すんなり行くとは思わずに進めてみるとやっぱりすんなり行かない

CPUファンを4回ほど取り付け直し。。。

すごくキュンキュンに詰まっている(*゚ェ゚*)

電源周りのケーブルもすごいことに∑(*゚ェ゚*)

なんとかフレーム内に収めて完成(*´ェ`)

続々・Raspberry Pi Pico と気圧センサーで気圧計を作る

修正した基板とステンシルが届いたので実装していく(*´ェ`)

基板の上にステンシルを載せて(*´ェ`)

はんだペーストをヘラで刷り込んで。。。(*゚ェ゚*)

はい簡単(*゚ェ゚*)

ステンシルの押さえ方が弱かったのか少し滲んでいる(*´ェ`)
まあいいか(*´ェ`)

今回も二つの基板で進める(*´ェ`)
表面実装部品を載せて。。。(*´ェ`)

これまた便利なヒーターの出番(*゚ェ゚*)

あ、はんだが繋がっている箇所がある。。。はんだ吸い取り線で余分なはんだを取っちゃおう(*´ェ`)

二つ目は綺麗に出来た(*゚ェ゚*)

今回は問題なく動作した(*´ェ`)

続・Raspberry Pi Pico と気圧センサーで気圧計を作る

小型化&表面実装部品に変更した基板が届いたので

ミニホットプレートプリヒーターなるMHP50を使用してSMD部品を実装してみる(*´ェ`)

試しに2枚の基板ではんだはソルダーペーストを爪楊枝に乗せて銅箔部分に付けていく・・・
初めてのホットプレート&ソルダーペーストなので適量が分からない
結構はんだの量が偏っている・・・

チップ部品の実装も初めてでこんなに小さいとは・・・(キャパシタが1個どこかに転がり落ちて無くしてしまった)

上手くいくかな、いくといいな(*゚ェ゚*)

はんだペーストが溶ける様子は見ていて気持ちがいい(*´ェ`)

一つ目の基板、上手く行っているところもあれば・・・はんだの量が多いようで繋がってしまっているところも∑(*゚ェ゚*)



続いて二つ目の基板、一つ目の基板と比べてはんだの量を気持ち少なめにして・・・

SMD部品を載せて・・・

むぐぐ、一つ目の基板の時より残念な感じになっている・・・

はんだが多いところははんだ吸取り線で取り除く(*´ェ`)

7セグメントLED と Raspberry Pi Pico、気圧センサーを取り付けて動作確認をしてみる(*゚ェ゚*)
あらら、7セグメントLEDは点灯しているけれど気圧センサーの値が取得できていない?∑(*゚ェ゚*)

二つ目も確認してみるとこちらは点灯すらしていない・・・(*´ェ`)

調べてみよう・・・
一つ目の基板、症状としてはディスプレイに0000は表示される。
センサーと通信できていない、もしくは値が取得できていない。
テスターで調べてみると4番PINと8番PINはGNDで繋がっているはずなのに導通していない。
基板設計図を見直してみると4番PINのGNDが孤立している・・・DRC(デザインルールチェック)したはずなのに、もう一度DRCを走らせるとGNDが繋がっていないエラーが出ていた・・・(*´ェ`)

二つ目の基板、症状としてはディスプレイに何も表示されていない。7セグメントLED周りが怪しい。
ソースICの9番PINがはんだ不良で(はんだが少なく)導通していない。
こっちも基板設計がおかしいのでセンサー部分の4番PINと8番PINをジャンプさせる。

ピンクの四角同士(一つ目と二つ目の基板)と青い四角同士(二つ目の基板)が導通していない。

というわけで基板設計の修正を行う(*゚ェ゚*)

原因はセンサーの4番PINのGNDが浮いている孤島のようになっているので4番と8番PINをジャンプさせればとりあえずは動きそう(*´ェ`)

これで1つ目と2つ目の基板で動作することを確認できた。

修正した基板とステンシル(はんだペーストを載せるのが楽になる)を発注して待つ。。。(*´ェ`)

Apple M4チップ搭載のMac mini を注文

Apple から新しく出た M4チップ搭載のMac Mini を注文して届くのが楽しみ ワク₍₍ (ง ˘ω˘ )ว ⁾⁾ワク

主なカスタマイズは以下の感じ(*゚ェ゚*)メモリモリモリ
14コアCPU、20コアGPU、16コアNeural Engine搭載Apple M4 Proチップ
64GBユニファイドメモリ
10ギガビットEthernet
2TB SSDストレージ