今夜、PCBのガーバーデータをPCB工場のウェブサイトにアップロードしました。人生初!

この記事に付いて初めに理解して欲しいのは『素人の記事』です。全部間違った記事と言っても良いかもしれませんから悪しからず。

 

基板の色は紫にしました。「基板は緑に決まってる」と思って居ましたが、発注先のウェブサイトで紫の基板を見たら一目惚れしてしまいました。

5枚も届くので、1枚は玄関に飾りましょう。

↑ 発注先ウェブサイトのスクリーンショット

↓ KiCadの3D画像

 

見た目は立派ですよね? 今回発注したプリント基板表面の3D画像です。大きさはラズパイの基板と同じで85mm x 56mmです。これはGPS(GNSS)の1PPSを利用した7セグLEDの時計で、ラズパイを使用するので1PPSの利用中はstratum 1のNTPサーバとして機能します。多分。
また、stratum 1のNTPサーバ機能まで要らないなら、GNSSの基板不要でそのプログラムを走らせなければ良いだけです。それでもラズパイにインストールされたntpdで外のNTPサーバに同期して正確な時刻を刻みます。

どちらにしても、この時計はネットワーク環境が必須なのです。ずぼらな私でも時計は正確を好むので、正確な時刻を得るために動く。

 

ここで、発注後になって気付いた残念な事。

金メッキ(無電解金メッキ ENIG)だと思っていたのに、違ってました。
でもENIGにすると$15.8も余計に。ENIGは見た目が立派だけど、ついでに値段も立派? ↓

 

今回の基板サイズは100mm x 100mm以内、材質はガラスエポキシ(FR-4)で最小ロットの5枚。これで製作費用たったの2ドル。送料は安さ優先で2ドルちょっと。合計5ドル以下で見た目が素晴らしい基板が届くとは驚きです。

見た目はプロ級、でも心配。回路図が間違っていなければ動くはずです。私が苦手なアナログ回路な無くて、単純なLチカが63個あるだけですから。

でも昨日、ベタ塗りの所まで来た時、回路図の誤りが判明してビックリ。ピンアサインを間違えたり、3.3V接続の所を5Vにしていたりでビックリです。

もう修正したので大丈夫。ホント?

 

今度は、回路図はそのままでラズパイゼロ用に基板を作ってもいいかな。と言ってもラズパイが在庫切れで買えないけど。いつまで在庫切れが続くんだろう。

 

後日の追記

発注後に、ラズパイ基板の寸法図をぼんやり見ている時、待てよと気になりました。

ラズパイGPIOの1番ピンの位置がずれて無いか気になり調べてみると、基板取付穴中心からX軸Y軸共に0.03mm離れている感じです。もう注文した後だし、誤差の範囲かなぁ? ↓

この基板取付穴がラズパイより大きくて直径3.2mm。ラズパイは2.7mmだから、どうなる?

この他にも、後で思う事と言ったら。ファン用の5Vコネクタも設けておけばよかったと後悔。

 

これは、このサイト(ブログ)の話しです。復旧後、この記事を投稿しました。

 

Ubuntu 22.04 LTS にアップグレードしたら、WordPressのPHPソースコードだけが表示されてブログが使え無くなってしまった。

phpinfo()も機能しないのでPHP関連に不具合があるようです。Ubuntu 22.04 LTSにアップグレードしたらPHP8.1.2になり、PHP8.1にWordPressの古いバージョンは未対応らしい。なので最新のWordPress 5.9.3をインストールする事にしました。

 

アップグレード日:2022年4月27日

Ubuntu 20.04.4 LTS → 22.04 LTS

$ sudo do-release-upgrade -d

 

Ubuntu 22.04 LTS
PHP8.1.2
WordPress 5.9.3

 

↑ 現時点で最新のバージョンにしましたが、まだphpinfo()も機能しません。色々ググって試したら以下のコマンドが有効でした。

$ sudo a2enmod php8.1
Considering dependency mpm_prefork for php8.1:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php8.1:
Enabling module php8.1.
To activate the new configuration, you need to run:
  systemctl restart apache2


$ systemctl restart apache2
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'apache2.service'.
Authenticating as: xxxxxx
Password: xxxxxx
==== AUTHENTICATION COMPLETE ===

当サイトのプログ(今見て貰っているこのブログ)で運用中のWordPress。そのサイトヘルスチェックで、「オプションのモジュールintlがインストールされていないか、無効化されています」とのコメント。

このままでも、困らない感じなんだけど。サイトヘルスステータスが「良好」でないとスッキリしないので、その必要なモジュールをインストールしました。

当サイトのOS:Ubuntu 20.04.4 LTS

インストールは、以下の1行だけで済みます。

$ sudo apt install php-intl

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  php7.4-intl
The following NEW packages will be installed:
  php-intl php7.4-intl
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 128 kB of archives.
After this operation, 542 kB of additional disk space will be used.
Do you want to continue? [Y/n] y

サーバーを再起動させれば有効になっています。

 

結果、サイトヘルスステータスは

C言語などで開発する時便利なのが、printf分でターミナルに文字列を出力する事です。

でもPi Picoはディスプレイが無いので
printf(“Hello, world!\n”); と書いても出力先が無いので意味がありません。

その出力先として、USBやUARTを通して母艦PCのターミナルを出力先に出来るとの事です。

私は母艦PCにRaspberry Pi 4を使用しUSBケーブルでPi Picoを繋げています。ですからUSB接続での設定をします。

 

開発中のC言語ソースファイルがあるディレクトリにCMakeLists.txtを用意します。中身は画像の通りです。LXS-TESTとはそのディレクトリ名(フォルダ名)なので参考になるでしょう。 ↓

CMakeLists.txt

add_executable(LXS-TEST
        test.c
        )

target_link_libraries(LXS-TEST pico_stdlib hardware_spi hardware_adc)

# enable usb output, disable uart output
pico_enable_stdio_usb(LXS-TEST 1)
pico_enable_stdio_uart(LXS-TEST 0)

# create map/bin/hex file etc.
pico_add_extra_outputs(LXS-TEST)

# add url via pico_set_program_url
example_auto_set_url(LXS-TEST)

↑ 赤線で囲まれた部分がターミナル関連です。

CMakeLists.txtが用意出来、ビルドが済んだ uf2ファイルをPi Picoに書き込むと、以下のコマンドでウインドウ内にprintf文の出力が表示されます。

$ minicom -b 115200 -o -D /dev/ttyACM0

複数の文字描画が出来るようになったので、上から最大、平均、最小の各電圧を表示させました。平均の求め方は、(最大 + 最小)÷ 2ではありません。左端から右端まで96データあるので、この96データの平均です。

 

↓ 電圧数値の表示テストの為、数値を10倍にしています。右寄せの確認です。ちゃんと右寄せになっています。

 

↓ 動画も用意したので見て下さい。表示スピードが分かると思います。

 

手持ちの安価なデジタルテスターと比べると、0.02V位の差がありました。ご承知の通り? この分野も私は素人なので、Pi PicoのADC0ピンにダイレクトで可変直流安定化電源を繋げてテストするずさんさですから、この電圧差はなんとも言えません。

 

取り敢えず、電圧表示出来るようになったので面白くなって来ました。