目次: Arduino
M5Stamp C3で遊んでいるとプログラムが妙に遅くなることがあって気になります。AD端子が関わっているようです。原因を調べてメモしておきます。
まず全力を見るためdigitalWrite()でGPIO出力のHIGH <-> LOWを往復させるだけのスケッチ(Arduinoはボードで動かすプログラムのことをスケッチと呼ぶ)を作成し、出力がHIGH区間の幅(=ループ1回の処理に掛かる時間)をオシロスコープで計測したところ約7.6usでした。
M5Stamp C3のピン配置図(M5Stack社のサイトから転載)
M5Stamp C3のピン配置図を見るとA/D変換に対応した端子は0, 1, 4, 5の4つです。先ほどのスケッチにA/D変換対応端子の読み出し(=処理が遅くなる容疑者)を順に追加して、同様にループ1回の処理に掛かる時間を計測します。
どういう訳かanalogRead(5)だけが異常に遅く、読み出し値も常に0で正常動作していないように見えます。とりあえずこの端子は使わないことにしましょうか……。
もうひとつのA/D変換対応端子の読み出しAPIであるanalogReadMilliVolts()の時間も計測しましょう。読みだした値をmV単位に換算する処理が必要なので、処理時間はanalogRead() < analogReadMilliVolts()になるはずです。
割り算が要るのでそこそこ重い処理だと思いますが、16us(160MHz換算で2560クロック)も掛かるんですね。迂闊に連打しない方が良さそうです。
目次: 自宅サーバー
Gmailのメール受信ポリシーが2024年の2月で変更されるというニュース(Gmailユーザへメールが届かなくなる?Googleが発表した「新しいメール送信者のガイドライン」とDMARC対応を解説! - NRIセキュア ブログ)を思い出しました。
自分のドメインからGmailにメールを送ることはほとんどないですが、全く送れないのも困りそうです。試しにGmailに自分のドメインのメールアドレスからメールを送ったところエラーが返ってきました。もうポリシーが変更されているのでしょうか?
とりあえずDNSの設定を変更してSPF(RFC 7208, Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1)レコードを追加します。送信元がメールサーバーのIPと一致しなければ、全部受信拒否してOKという強気の設定にしました(バリュードメインの設定パネル用の書式で書いています)。
txt @ v=spf1 ip4:219.94.129.142 -all
設定後しばらく待って(少なくともDNSのTTLに指定した秒数以上)からGmailにメールを送ったところ正しく届いていました。良かった良かった。
SPFレコードの設定を解説してくれているブログ(送信ドメインを認証するためのSPFレコードに詳しくなろう - SendGridブログ)が参考になりました。
活きた設定例を見たいときはプロバイダ各社のSPFレコードを見ると良いと思います。SPFはTXTレコードの一種なので、TXTレコードをDNSに問い合わせます。
$ dig wakwak.com TXT (略) ;; QUESTION SECTION: ;wakwak.com. IN TXT ;; ANSWER SECTION: wakwak.com. 86400 IN TXT "v=spf1 ip4:211.9.226.0/25 ip4:211.9.226.128/26 ip4:211.9.227.0/25 ip4:211.9.227.160/27 ip4:211.9.230.0/23 ip4:211.132.128.0/23 ip4:211.132.130.160/28 ip4:211.132.130.132/31 ip4:211.132.130.208/31 ip4:219.103.130.0/24 ip4:219.103.131.128/26 ~all" ;; AUTHORITY SECTION: wakwak.com. 73658 IN NS ns2.wakwak.com. wakwak.com. 73658 IN NS ns1.wakwak.com. ;; ADDITIONAL SECTION: ns1.wakwak.com. 37518 IN A 211.9.226.37 ns2.wakwak.com. 37518 IN A 211.9.226.101
理由はわからないですが、プロバイダのSPFレコードを見るとディレクティブ(レコードの最後の部分)に~allを使っていることが多いです。
今回はkatsuster.netのSPFレコードのディレクティブを-all(ルールに合致しなければ全部受信拒否)にしましたが、世の中のプロバイダ同様に~all(ルールに合致しなくても受信拒否しない)でも良いのかもしれません。
USB Type-Cの充電器を3つほど購入しましたので、メモを残しておきます。
Anker Nano IIはLenovo ThinkPad E480のACアダプターを置き換えるために買いました。ThinkPad E480付属のACアダプタはやや大きいため、Nano IIのようなコンパクトな充電器はありがたいです。
Anker PowerPort IIIはスマホやタブレットの充電に長らく使ってきたAUKEY PA-Y12(72W Charging Station、USBポート: Cx1 + Ax2)の置き換えです。出力は負けますがコンパクトでありがたい限りです。時代の進化を感じます。
AUKEY Charging Stationに比べると、Anker PowerPort IIIはType-Aポートが-1でType-Cポートが+1です。以前ならType-Aポートが多い方が嬉しかったのですが、最近は我が家もType-Cでの充電に対応した機器が多くなって、AでもCでもどっちでも問題なくなりました。
ELECOMキューブ充電器は旅行で持っていく用に買いました。3ポートあるのにコンパクトでとても良いです。
ただ1点気になるのは、Type-CポートとType-Aポートの抜き差しを繰り返すとまれに充電制御がおかしくなる?現象です。Type-CポートのUSB-PD出力が5Vに張り付いてしまい、他のポートを空けても戻らなくなることがありました。コンセントから外して再度電源を投入すると直ります。何か条件があるのかな?
< | 2024 | > | ||||
<< | < | 01 | > | >> | ||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
- | 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 | - | - | - |
合計:
本日: