Maker活動

2024年10月2日水曜日

iPhoneのAppleCare+紛失盗難補償はキャリアの方が良いと思う

AppleCare(純正)は対応遅い

AppleCare+盗難紛失保証として支払う金額的は同じなんだけど、キャリアだとその日か翌日には交換機が発送されると明記されています。

Apple様純正のAppleCare+ 盗難紛失保証だと、以下の通り。

つまり土曜〜月曜3連休の初日に紛失したおバカな私のところには最速でも水曜日か木曜日にならないと届かない。そして今水曜日。

そして届いたのは9月30日午前10時でした。紛失から9日後、承認画面に明記されている「1-2営業日配送」から6-7日を経過したことになります。

まぁスマフォ無くすなよ、って話なんですけどね……。経緯は以下の通りです。

9/21土曜 14時頃紛失に気づく。心あたりを探すが見つからず。用事をすませて帰宅しFind my iPhoneを見ると調布市のあたりで発見、しかし呼び出しても電源が切られたようで動きも応答もなし。乗車していた日本交通サポートからメールで「見つからない」と連絡。Suicaを2万円ほどチャージしてあったこともあり盗まれたと判断して盗難補償申請→承認。その後日本交通の営業所から見つかったと連絡。AIGに承認の取り消しを交渉してみたがNG。

9/26 木曜 まだ発送されません……AppleCareに電話してもつながりません……。AIGのサポートに電話したところ、待ち時間なしで一瞬でつながり、親身にサポートしてくださったのですが、AIGからはAppleに依頼済で、「発送はAppleからになるので、Appleが動かないとどうにもなりません」とのこと。AIGは休日も対応しているけど、Appleの対応は平日のみで、

つまりAppleの怠慢で送られてこない。

在庫管理を徹底して利益確保したのはTim Cock CEOの功績なんだそうですが、保険用の在庫管理はできていないのでしょうか。またひとつ、Appleが嫌いになりました。

9/27 金曜 AppleForumで教えていただいた経路からチャットがつながり、事情を説明しましたが状況は変わらず。用事を済ませてみるとチャットのボタンが消えていました(あとでAppleCareのチャットは時間限定との情報をいただく……それならその旨ボタンのあった場所に書いておくのが親切なUIではないかと思う)。電話するとつながり、なんと戻ってきた機械を使えるようになるかもしれない!と。AIGへの照会番号などを教えてもらい、AIGに連絡したのですが……AIGとApple Supportで直接話をしてもらったのですが、やっぱりダメ、とのこと。また用事を済ませて電話をすると今度は偉い人っぽいのにつながり、「とにかく早く!」とお願いしたところ、

在庫がなくて10月8日になる

という回答が。それはいくらなんでも受け入れられないので色など違っても良いからと頼んだところ1台見つかったとの回答。今日間に合うかどうか知らせて欲しいと告げたところemailでも返事をくれるとのことだったが電話のみの連絡でemailには「電話つながらなかった」とだけ。

それにしても保険料を毎月きちんと引き落としておきながら、いざトラブルになったら「在庫ないから送れない」というのはあり得るのでしょうか?

それにしてもそれにしても、こういうタイミングでヨドバシ/楽天カードがスマフォ認証になったのは何という罰なのでしょう……必要な物資が買えない……。

私は「馬鹿なマカー」なのでいっそ新しいiPhone 16に、とも思ったんですが、まだ在庫が不十分だしそもそもSMS認証できないのでmy auにすら入れない。

9/28 土曜 何度か電話着信あり。こちらから電話をすると補聴器がバグってつながらず、再度電話。機能の担当者とは別の人。お話をすると、昨日は送ることができなかった。ということしかわからず。月曜日の朝、状況を確認した上で電話をもらうことになった。これで「承認から1週間以上、保障されない」ということが確定してしまった。

そして、なんという皮肉か、今月のAppleCare代金が本日きちんと引き落とされました。すごいですね(止める方が大変ということを理解した上での皮肉です)。

9/29 日曜 その後も日曜日に何度か着信。補聴器が間に合わず切れてしまいますが、何とか間に合って話をすると進展なしとのこと。火曜日になればわかる、と言いだしたので、月曜日に発送できるかも?と言っていたのに何? ともかく何の進展もないということを伝えるために電話してこなくても良いです。とお伝えした。

それからしばらくして15:57、AIGから商品を発送しました、というメールが入る。進展がない月曜日になる、火曜日に連絡する、と言っていた話はなんだったのか。ともかく本当に届けばいいなぁ。なおメールにSIMが必要になるかもしれない、ということで17:20ごろAppleに電話をして確認すると、発見されたiPhoneのSIMをそのまま使えばいいとのこと。ところでこの文鎮(発見されたiPhone)はどこに送ればいいのでしょう……。

9/30 月曜 午前10時ごろ、無事iPhone届きました。SIMを入れ替えて動作確認、リストアなどで何とか復旧。長かったです。

最後、AppleからAppleCare+盗難紛失保証についてのアンケートが来ました。最後に書いたメッセージは以下の通り。ごまめの歯ぎしり。

サポートの方にもお伝えしましたが、承認されたら1-2日で届くものと思っていたら「1-2営業日」の発送とあり、それは仕方ないかと思ったのですが、営業日を3日すぎても音沙汰がなく、こちらから問い合わせをして初めて「在庫がないから10月8日になる」との回答があった。公式の発送日より遅れているのにこちらから問い合わせなければ返事がなく、しかも保険料を受け取っていながら在庫が確保されておらず、しかもWebに記載されているよりも遙かに長い日数がかかるという対応。

さらに問い合わせの過程で、何度か「承認後発見された場合に回復の方法がある」という誤った情報を伝えられ、AIG - Appleサポート間でたらい回しに遭った。

これは補償システムとして正しいと思いますか?

サポートの対応として正しいと思いますか?

どうせこんな長文書いても誰も読まないんでしょうけども……書きました。for the rest of usなAppleが大好きだったので。


楽天モバイルというアナザー地獄

しかし携帯電話がないと困るので、一度回線を解約した楽天ミニを復活させようと思ってeSIM申し込んだんです。が、SIMダウンロードまでは成功して「開通に成功しました」って出るんですが、そのあと「失敗しました」って赤文字が出てつながらない。

サポートに書いてある手順通りリセットしたりしてもダメ。

苦労してチャットにつないだのは良いですが、「一度引き落とされてから、返金する」とのこと。でも、もう一度チャットにつながるまでサポートページをさまようのはイヤなので、何を言われても「いやです。キャンセルします」と数回繰り返したところ、めでたくキャンセル条件の条項が送られてきて以上について承諾するなら「承諾する」と書け、との回答。

承諾し、めでたくその場でキャンセルできました。というかアカウントごと消えました。

そろそろ総務省案件かなと思っていたところでしたが、粘り勝ちでした。


その後……TOKYO GOOD SPEED WIFIは神

困ってレンタルのiPhone 7を借りました。Webで申し込み完結、面倒なことは何もなく。返却も同梱されていた梱包材に入れてただ送り返すだけ。

すばらしい。

ちなみに、通話無料、通信5GB/月まで、破損については無償、紛失の場合だけ2万円のペナルティとのこと。テザリングもOK。

すばらしい。

Tim Cockさんと三木谷さんには、顧客の時間を節約することが自分たちのコストを削減することだ、と学んで欲しいものです。

2024年8月3日土曜日

温度制御もサーミスタの計算もChatGPTで?


ここなら案件で作った小型のヒーターです。

最初PTCで作ったけども、応答をよくすると電流ガンガン流さないとダメでした。

なので少しは効率よくなるかとおもってペルチェを使ってみたら、良い感じでモバイルバッテリーでも十分動作するようになりました。

ペルチェは電流での発熱が多いから、冷やすより加熱の方が得意なんですよね。

ペルチェの表面にはサーミスタを貼っています。内部の温度と表面温度が3-4度離れているので、暴れますね。PIDでいじってもどうにもなりません。室温にさらしている分には良いんだけど、指などを当てて離すとIとかDとかまったく間に合わないぐらい温度上昇するので、出力カットしています……それでもどーんと上がります。

プログラマ物理現象には勝てぬのだ。

閑話。

なんかで値を計測しつつ、PWMで電流を制御して……っていう案件すごく多いんですよね。今年に入ってXIAOと2SK4017という組み合わせで何枚を作ったことか。

もう「マイコンとN-ch MOSFETとスイッチ、あと空きスペース」っていう基板を量産しておこうかしら……、


今回ChatGPTさんにサーミスタの換算式の導出をお願いしたんですが、何度やっても正しい式が出てきませんでした。方程式書いて、こうじゃん?って言っても、頑なに最初の間違った式を主張してきます。ChatGPTさんは一度間違えるともうなんか修正効かないときがあるんですよね……なんででしょう。

あと、PIDについても相談してみたんですが……これはまぁ「実験で確かめてください」って言われますよね。そうですよね……温度のグラフを見せれば「それぞれのゲインはこうです!」なんて指定してくれるんじゃないかと思ったりしましたが、無理でしたw

まぁでも、開発作業での調べ物は本当に効率よくなりましたね。VSC上のCopilotも使っていますけど、こっちがコメント書いてるとその先のコメントとコードも書いちゃうし……

私らロートルプログラマはツールの進歩に支えられて「30年定年説」から逃れてきましたけども……もうちょっと長生きできそうです ^ ^

2024年7月17日水曜日

ESP32C3のシリアルに悩む


AnalogDiscovery2とオシロまで引っ張り出して

 ほぼ愚痴です……

ESP32C3でGNSSとLTE modem同時接続が動かなくて半日ツブしました。

結局原因はわからないんだけども……昨日テストしまくって切り分けしてSoftwareSerialとHardware Serialをわざと入れ替えてビットレートも変えて……いろいろやったんだけど動かなかったのに、今朝試したら動いてしまい。

原因がわからない……。

考えられるのは、ATコマンドデバイスは電源投入後最初のAT<CR>で通信速度の設定をしている、という仕様があったと思います。つなぎ替えたりしたときのノイズで変なボーレートに設定されてしまい、それでAT<CR>OK<CR>が帰ってこなかったんじゃないか?という説。

今朝電源を入れ直したらからまた初期化されてデフォルト値の115200で叩いたら反応して現在に至る。

ただ、これは昔の「ピーガーモジョモジョジョ」な時代のモデムの話で今時のLTEモデムにも通用するんですかね。

gitでhistoryみても試行錯誤の過程で間違った設定はしていないし……これぐらいしか思い当たりません。

ほぼ愚痴ですが……時間潰してくやしいので書きました。

速度の速いLTEモデムはHardwareSerialのSerial1、遅めのGNSSはSoftwareSerialで動かしています。

2024年6月6日木曜日

ADT7410の奇妙な現象

I2C接続の16bit温度センサーADT7410をわりとノイズ激しい環境で2個使っている(近くに10W程度のDCブラシモーターがぶんぶん)。CPU基板から10cm、センサー基板上に5cmぐらいの配線。

1分間隔での測定するとCPUから遠い方だけ数度高い温度が記録されてしまう。

ノイズ源を止めると最初の2-3回高い値が出るけど次第に収束する。continuousモードで計測しているのでI2Cでのデータの取得とは関係なく内部では計測しているはずなんだけども、止めたあとの時間間隔に関係ない2-3回は高い値が出てしまう。continuous以外のモードでも違いは感じられない……。

……なんでしょうねー。

表からみえる現象から判断すると、通信エラーではなくIC内部にノイズが直接影響しているような感じなんですが……。

Ni-MHを使ったUPS基板なんですが、サーミスタにしておけば良かったかなぁ……。

2024年6月4日火曜日

Raspberry pi(master)とESP32(slave)のI2C通信

まず基本的なこと。ESP32のWireはずっとslaveにならず外部のライブラリを使う必要があったけど、いつの間にかマージされたんですねー。普通のArduinoと同じようにWire.begin(Slave Address, SDA, SCL, Clock);と書けばスレーブとして動作します。

さて、Rapberry Piの3番ピンとXIAO S3のD0、5番ピンとD1、GNDと6番ピン とを接続して、Raspberry Piのraspi-configでI2Cを有効にし、i2cdetect -y 1<Enter>と押せばXIAOのスレーブアドレスが表示され……ません。

しばらく悩みましたが、ESP32側でI2Cクロック周波数を100000に設定してRaspberry Piの標準I2C速度に合わせたところ、無事通信できました。

……速度を自動的にあわせてくれるセンサーなどのI2Cデバイスって偉いですね ^ ^;


■余談:今日も朝からハマりまくりでした■

XIAO S3がどうも自動書き込みできなくなってBOOTボタン(ちっこい)とResetボタン(ちっこい)で強制的に書き込みモードにしていたんですが……Serial.beginの後にdelay(5000)を入れたら問題なく動くようになりまして。

while( !Serial ); を入れればいいんですかね。でも、これ入れると装置に組み込んでシリアルつながない状態だと永遠に起動しないんですよね(XIAO RP2040の場合……S3, C3などでは試してない←試せ←試します)。

whileに真面目にタイムアウトとか組み込んだ状態で対応すべきなんですが……そうすると組み込みの顧客から「起動が遅い!」って怒られてどうすりゃいいのさ思案橋(古い)。

--

次にハマったのはESP32でのサーボ制御。せっかくビット数の多いPWMがあるんだから真面目にPWMのリロードなどを書けば良い精度で複数chの50Hz PWM制御できると思うんですが、なかなか良いライブラリがありません……オシロで見ていると複数のサーボを同時に動かすだけでパルス幅がメロメロになっちゃう。

今回使いたいのは2chだけなので自分で書くか……とも思ったのですが、AVRなArduinoでしか動かないけどやけに滑らかに動くので、それ使うことにしました。ライセンスがGPLだけど顧客の承認も取れましたし。高い高い純正のArduino nanoも買いました。とりあえずティーチングした通りにサーボ2個を動かす必要があるので、学習データはI2C EEPROMに書き込むことにします。

I2C EEPROMの追加は10分で終わるけど、サーボの処理は10分じゃ書けない!

実作業よりハマっている時間の方が長いんですよね……。

2024年5月31日金曜日

DFPlayer proでまたハマる……

もし認識違いがあったら突っ込んでいただければ幸いです。

  • やっぱり電源は3.3Vだと駄目
    • miniと同様に3.3Vだとちゃんと動いてくれない。
    • 5Vにすると動く。ただ5Vを給電すると、miniと違ってTxに3.7Vぐらい出てきちゃうので下手な3.3V系マイコンをつなげない(マイコン破損の可能性)。
    • とりあえず、電源を5Vに接続し、Txを2.7k + 4.7kにつないで中間点から取り出した信号をESP32に入れることで動作することを確認しました。

  • ファイル削除すると駄目
    • DFPlayer miniはSD Cardが必要ですが、proはUSB TypeCでPCと接続すると直接USBメモリーとしてマウントされます。
    • それは良いのですが……ファイルを削除したり上書きするとダメになります。連続再生しながらファイル名を表示していて気づいたのですが、消したはずのファイルが一覧に現れてます。
    • 対策としては、
      1. 中のファイルをどこか保存
      2. UBSとしてマウントされたドライブをフォーマットする
      3. ファイルをコピーする
      4. アンマウントする

そんな感じです。ああしんど……。あ、ファイルの追加は大丈夫です。

2024年4月13日土曜日

M5Stack Core2 + バッテリーボトム

Core2のタッチパネルを使いたい+BasicのGPIO使いたい、ということでバッテリーボトムを組み合わせてみました。

Core2の底の4本のネジを外し(M2トルクス)、垂直に引っ張ると底のカバーが外れます。

バッテリーボトムは2本のネジ穴しかないし、外したネジは届きません……ボトムの厚さが違うので仕方ないですが、ネジの長さの許容範囲が狭いので、さてどうやって調達したものか……。

M5Stackは内部で使っているGPIOも外に出す方針。Core2はBasicより更に内部仕様が多いので、外で使える信号が少ないんですよね。

いつもお世話になっておりますlang-ship様の「M5Stack Core2のGPIO調査」によれば、13,14,19,25,26,27、あとGroveのところに32,33が出ている、とのこと。

ただ、M-BUSの配置が変わっているので(M5Stackさんのこういう行き当たりばったりな体質……10年使えるバスを考えていて製品が出ないより良いのでしょうね)、読み替えないといけません。

まぁ、ESP32自体、使えるGPIOが少ないのでしょうがないですね……。

で、pimodeをoutputにしてdigitalWriteでHIGH/LOWするという極めて原始的なプログラムで検証した結果、以下のGPIOが使えそうです。左がプログラム上のGPIO番号、右がBattery Bottomでの名称です。

13 -> 16
25 -> 25
26 -> 26
14 -> 17

おお、全部(後ろから見て)左側に並んでいる!ありがたや!!

なお、この他、入力のみ使えるピンとGroveで使えるピンがありますが、検証していません。また後日←(うん、いけたら行く

入力のみ使えるピンは35,36ですが、これはBasicでもCore2でもM-BUS上での配置が同じなので、そのまま使えるんじゃないかと思います。

筐体設計……

設計なんてだいそれたことじゃなくて……穴開け指示図面を書いて、業者さんに齟齬なく依頼できれば良いんですが……

今回、Fusion 360で、

各面(天板・底板・前面・後面)にスケッチを作って穴位置を指定する

ってやったんですが、終わってから気づいたんですよね。

1. スケッチで底面の長方形を描く
2. 直方体にする
3. 穴開けの必要な面をスケッチにして、穴加工を描く

この方が楽だったな、って……。

出来上がったのが上の画像です。板金屋さんへの説明のために底板だけ1.5mm厚さのボディを作ってあります。あと天板の加工は省略です。

こんな感じの「3Dツールで書いたけどやっぱりポンチ絵」な雑な図面で、きっっちりきれいなケースを作ってくださる星製作所こと「板金ケース.com」さん、ありがとうございます!

今回は時間がなくて鉄+塗装なんですが、アルミ+アルマイトとか鉄・ニッケルメッキがきれいなんですよね。



2024年4月11日木曜日

ポゴピンの台、作りました。



作った基板の検査用に基板裏から接続して計測などする必要が生じたのでDIP 8の形に生えたポゴピン探したんですが……ないですね。

なので作りました。

最初ユニバーサル基板重ねて動かないように固定してからはんだ付けすれば楽勝じゃね?って思ったんですが、ユニバーサル基板の穴は0.8mmぐらい。今回使う「凹」型のポゴピンは太さ1.3mmなので通らない。

基板を起こそうかとも思ったんですが、時間もないのでとりあえず絶縁した台を作ってワイヤ引っ張り出しました。

1. 3Dプリント→ピンバイスで穴加工

FDMで穴のサイズをいくつか変えて出力したんですが……ダメダメでした。最近うちのSnapmakerさんご機嫌ななめで、ノズルを交換しないと駄目な感じです。

SLAプリントなら精度出るんですが、いま手荒れがひどくて使用禁止。

ということで、ピンバイスで1.5mmに穴を広げました。PLA硬いけど、なんとかOK。

2. はんだ付け

ポゴピンを台に通してから導線をはんだ付けします。ゆっくりはんだ付けしていると台が溶けるのでご注意を。はんだ付け不要のタイプなどもありますが、今回、在庫の都合ではんだ付けしました。

3. ポゴピン通していい感じに仮接着

この項目の作業はSLAで精度良く出力したら不要かも。

作業用のジグを出力しました。ポゴピンが同じ長さになるように、ポゴピンを通してひっくり返した「台」が作業台と水平になるように保つジグです。

ポゴピンを穴に通してから、台をひっくり返した状態で上記ジグにはめ込んで、ポゴピンがみんな平行かつ垂直になっているのを確認してから、ホットグルーを垂らして動かない程度に固定します。

ホットグルーが温かいうちに水平垂直を確認しまくります……冷える時の「ヒケ」で動いたりしますので。

4. ホットグルー増量→再融解

ホットグルーを積み増しします。1回で乗せるとヒケやらで台無しになりますので、2-3回に分けて盛ると良いかと思います。

分けて盛ると、ホットグルーが汚くなりがちですが、そのときには手芸用のヒートガンでゆっくり温めます。するとグルーがいい感じに溶けて、滑らかかつ均一になります。糸引きなんかもキレイに溶けて一体化するのでグルーガン下手な方(遺憾ながら私だ)はぜひ。


いやー……大変でした。買うと高いわけですね。

でもDIPの「肩」に針立てるやつなんかを作っておくと楽だろうなぁ。あとポゴピン通すユニバーサル基板こんど作ろう。

2024年1月21日日曜日

E220-900T22 + EByte Lora E220 Library + ESP32

世間様のブログなどを見ているとみなさん簡単に動かしているんですが……原因確定するまで半日潰しました。とほほ……

ライブラリ、各種使いましたが、最終的にうまくいったのは表記の「EByte E220 Library」です。これのソースに書いてある配線でOKです。AUX, M0, M1についてはどのGPIOでもOKですし、Serial2についてもアサインを変えれば動きます。ESP32だとSoftwareSerialは面倒くさいので使いません。Hardware Serialで良いのです(強意)。

// 何があった>くらはし

私の場合はE220 : ESP32の配線を

M0 : 26
M1 : 27
RX : 17
TX : 16
AUX : 25
Vcc : 3V3
GND : GND

としました。これにあわせてピン設定を書き換えます。

さて、EByte E220 Libraryはよくできています。

ただ、そのままでは通信できないんじゃないかと思います。各通信モードに合わせた設定が必要ですが、各通信サンプルには設定を変更する機能が組み込まれていません。

02_setConfigurationという設定書込プログラムがありますが、そこに各送信モードでの初期設定が用意されコメントアウトされています。使いたい通信モードの設定のところのコメントを外して実行してE220に対して書き込み、それから使いたい通信モードのプログラムを実行します。

たとえば、04_sendFixedTransmissionというプログラムを実行する場合には、あらかじめ02_setConfigurationの"FIXED SENDER"とあるブロックを有効にして設定を書き込んでおくか、これに関連する処理を04_sendFixedTransmissionに移植して実行する必要があります。

あと、もう一つの落とし穴としては、通常の通信プログラムだと送信アドレスと受信アドレスを設定しておき、相手側のアドレスを指定すると送れるのですが……LoRaの特性なのかライブラリの特性なのか、送信側のアドレスと、受信側のアドレスが一致していないとデータ送信ができません。

一種のペアとして動く仕様なんですかね……?

まぁ……わかってしまえば簡単です。LoRaで長距離通信を楽しみましょう!

余談ですが、各種ブログを見ると、見通し距離なら数十Km届くみたいですが、影になるとガタ落ちみたいですね……最近の無線は2.4Ghzなどが当たり前なので、それに比べればLoRaの400とか900MHzは「回り込める」と言われるんですが……私ら古いアマチュア無線屋からみると900MHzなんて光と変わらないワイ、という印象です ^ ^