BBB には USER LED という青色 LED が基板上4つあって、デフォルトではフラッシュアクセス時に点灯するような設定になっています。基板上にあってすぐ使えるので便利です。

ただ、この USER LED のロジックピンはピンヘッダに出ていないため、USER LED をそのまま基板の外に表示させておきたいなんて場合には少々やっかいです。

ということで表題のようなことをやってみました。

基板につけるアダプタをつくる

こんな感じのを作ります

裏から見るとこう

CAM です。φ0.8 のエンドミルで加工しました。

どうつけるか? こうつけます。

いい感じにする

アダプタには4つ、φ1mm の穴があいています。ここに適当なφ1 の光ファイバーを挿しこみむとこうなります。

可愛い感じに延長できました。T=2mm の白のプラ版なので結構透けてますが、思ったより隣に影響を与えることなく分離できました。

  1. トップ
  2. tech
  3. BeagleBone Black の LED をはんだゴテなしで延長する

ZenFone 2 に Marshmallow アップデートがこないまま ZenFone 3 が発売されてしまった。ヨドバシで予約してちゃんと発売日に到着しました。

国内価格が台湾価格より結構高いんですが、台湾版がちゃんと国内で技適適用になるのかよくわからんので普通に国内発売を待って買いました (技適厨なんで…)

国内版の認証画面を表示させたところですが、日本以外の認証マークは表示されてません。台湾版はハードは一緒みたいですが、技適マークが表示されないんじゃないかという気がしますね。

今のところの感想

  • パフォーマンスは明確に上がったことを実感できる
    • 特に写真・動画はとても高速になったと感じる
    • Pokemon Go もスムーズになった (最近やってないけど)
  • デザインがだいぶ良くなった
    • ZenFone 2 はかっこいいとは言えないデザインだったがだいぶ改善された
    • フロントガラスに丸みが追加され・背面がガラス仕上げになったのがいいところ
    • 背面にめっちゃ指紋がつくのは悪いところ
  • 電源ボタンの位置が改善された
    • 改善と思うかは人によると思うけど、自分としては改善
    • ZenFone2 だとポケットに入れるときに頻繁に電源ボタンを誤操作することがあって不満だったところ
  • 指紋認証は便利
  • カメラの画質は値段なり
    • いうほど高画質ではない。ZenFone 2 よりは良い
    • 動画は思ったより綺麗
    • パフォーマンスが改善されてマニュアルモードがかなり使いやすくなった
  • 机に置いておくと掴みにくくなった
    • ZenFone 2 は中央が盛りあがっていたので(これがダサいんだけど)、机に置いておいても掴みやすかった
    • ZenFone 3 だとフラットなので掴みにくい (iPhone とかに近くなった)

充電がいよいよ Type-C になったので、Type-C のケーブルを買う必要がある (1つは付属している)。

  1. トップ
  2. tech
  3. ZenFone 3 がきた

HDMI の図面は割と見易い。けどそもそも図面の見方でわからんことがあって、それを調べる方法がないことに気付いた。基本的な部分 (4-R0.5 とか) はわかるけど、何をどう調べたらいいかわからない表記もある。

  1. トップ
  2. tech
  3. Fusion 360 - HDMI パネルマウントメス

ebay で売っていたもの。 J-Link OB と書いてあってかなり怪しい製品。STM32 に J-Link として動くファームが書いてあるっぽいがよくわからない。試した感じは使えることは使えそう。

接続までの基本

ケーブルが色分けされているが赤がGNDで白がVCC(3.3V)だったりするので気をつける。逆挿しされてんのか? と思ったけど、逆挿しできないコネクタだったので、ケーブルの配線が適当なんじゃないか。

試しに BLE Nano と接続してみた。nRF51 なので

openocd -f interface/jlink.cfg -c "transport select swd" -f target/nrf51.cfg

で繋げることができる。

ただし、NRF_POWER->RESET = 1; していると SWD の信号でリセットがかかりまくるっぽいので外しておくこと。

書きこむには

#!/bin/sh

set -x

# SoftDevice を .bin 形式にしておく
arm-none-eabi-objcopy -I ihex -O binary mbed-dev/targets/hal/TARGET_NORDIC/TARGET_MCU_NRF51822/Lib/s130_nrf51822_1_0_0/s130_nrf51_1.0.0_softdevice.hex .build/softdevice.bin

# Softdevice S130 でのアプリケーションスタート位置 リンカの FLASH ORIGIN
STARTADDRESS=0x0001C000

# write softdevice
openocd -f interface/jlink.cfg -c "transport select swd" -c "set WORKAREASIZE 0" -f target/nrf51.cfg -c "init; reset halt; nrf51 mass_erase; sleep 500; flash write_image .build/softdevice.bin 0x0; verify_image .build/softdevice.bin 0x0; mww 0x4001e504 1 ; mww 0x10001000 $STARTADDRESS; mww 0x4001e504 0; reset run; shutdown"

# write application
openocd -f interface/jlink.cfg -c "transport select swd" -c "set WORKAREASIZE 0" -f target/nrf51.cfg -c "program .build/keyboard.bin $STARTADDRESS verify reset exit"

SoftDevice は一回書きこんだら基本的に変えないのでコメントアウトしても良い。

書きこみに時間がかかる。アプリケーション 45KB で 14秒ぐらいかかった。

gdb 使うのはまた今度 (ほんとは gdb したくて ebay で買ってみたんだけど、届くのに時間がかかってる間に熱がさめてしまった)

ref.

↓ の Makefile 使うと簡単に書けそう。結局ここから最低限抜き出した感じになった。program で .elf 書けば一発だろと思ったけど、そんなことはなくてダメだった (たぶん余計な情報があるから?)。

  1. トップ
  2. tech
  3. 中華製の J-Link OB を使い OpenOCD で nRF51 に書きこむ

これは思いのほか大変だった。。本体部分が途中で微妙に膨らんでいて、なおかつ線が全周に入っているので、それをどうフィーチャにするかで悩んだ。結局側面にスケッチを書いて push/pull したけど、完全に正しいモデルではない感じ。まぁ見た目の問題だけだからいいんだけど……

オフセット平面とか、中立平面とか、3Dでのコンストラクションを使ってフィーチャをミラーするみたいなのに多少は慣れてきた。ヒストリーの編集もだいぶ使っている。ヒストリー編集してるときは後続フィーチャがぶっこわれないかヒヤヒヤする。

図面的に、最初にできるだけ1枚のスケッチに複数平面にわたる全てのジオメトリを書きがち。これだととからオフセットさせてスケッチをコピーみたいなのがやりたくなるけど、スケッチのコピーというのはできないっぽい。コピーではなく、プロジェクト(投影って意味のほう)を使って別のスケッチのジオメトリを新規オフセットスケッチに投影するのが正しいっぽい? やりたいことはこれでできることがわかった。


あと、これとは関係ないけど、コンポーネントのインスタンス化のとき、ユーザパラメータを指定することはできないんだろうか? コンストラクタ引数を渡したいという感じなんだけど…… コンポーネント自体をコピペするしかないんだろうか?

  1. トップ
  2. tech
  3. Fusion 360 - RCサーボモータ S03T 2BBMG

相変らずバカにされているという感じを毎日感じている。何かしら製作しているときはそれを遠ざけることができるが、部品待ちでちょっとやることがないとか、あるいはやる気がちょっとなくなってきたりすると、即座に沸きあがってくる。


主観的には「自分は良くやっている」と思っても、たびたび客観的に自分を見るように強制される (例えば人事評価など) 。「他人の評価を気にするな」というのは無理な話というか、それをすることは社会生活上許されていないように思える。金が無限にあればいいんだろうけど、金がないのでしかたない。「他人の評価を気にするな」とか平気で言ってる人は金持ちなのだろう。

主観的な「自分は良くやっている」は、振り替えったときに「この頃よりもできることが増えたな」というときに感じることができる。


自分はソフトウェアエンジニアというかプログラマである自己認識があるが、それだけやってれば楽しいだろうという気持ちはない。根本的には自分が作りたいものを自分で作りたいのであって、それはソフトウェアに限らない。

しかし社会的には特定分野のスペシャリストが求められており、広く浅いことをしていても無視される。場合によっては遊んでるんじゃねーよみたいに言われる。スペシャリストはもちろん必要。ただ、おおむね絶対数としてはなんでもできるほうが求められているはずだと自分は思ってるけど、社会的にはそうではないらしい。

どんな分野でも「自分でやってみる」ことによって初めて理解できることがとてもたくさんある。もし全ての人が「自分でやってみる」ことを心掛けたら優しい世の中になると思う。でも大抵の人はそんなことをしようと思わないらしい。そもそも想像だけで相互理解なんて無理な話なのだ。想像力は経験からしか生まれない。


価値観に関して。自分の中では「箸の持ちかたを正しくする」とか「モールスを聞けるようになる」とかが特にカッコイイという価値観なのだけど、これは一般的ではないようで、他人からは見向きもされない。これに限らないが、こういう評価のギャップというのはたくさんあって、積もり積もって「一般」を司る社会全体への不信に繋がっている。