2020年4月25日土曜日

ラズパイでSoftetherをセットアップしてみた

ラズパイでVPNが使いたかったのでDD-WRTで使っていたSoftetherを入れてみた。Windowsの管理ツール便利だし。

とりあえずラズパイでSoftether VPNをビルド。
wget https://jp.softether-download.com/files/softether/v4.34-9745-rtm-2020.04.05-tree/Linux/SoftEther_VPN_Server/32bit_-_ARM_EABI/softether-vpnserver-v4.34-9745-rtm-2020.04.05-linux-arm_eabi-32bit.tar.gz
tar zxvf softether-vpnserver-v4.34-9745-rtm-2020.04.05-linux-arm_eabi-32bit.tar.gz
cd vpnserver
make
makeすると同意するか聞かれるので同意する場合は1を三回押せば良い?
ビルドするバージョンによってダウンロードURLとかファイル名を適宜…

makeが終わったらとりあえずsudoできどうしてみる
sudo ./vpnserver start
これでSoftetherが起動したはずなのでWindows側の管理ツールで設定してみる。
管理ツールはSoftether VPNのページから
こんな感じで選択するとZIPでダウンロードできる。
vpnsmgr.exeを起動して
新しい接続設定を作成する。とりあえずラズパイで使ってなさそうな5555で接続してみた。ホスト名でもIPアドレスでも接続可能っぽい。
初回接続時にパスワード設定を求められる。次回設定画面にログオンするときに必要なので忘れないように。
ウイザードに従って設定する。とりあえず仮想ハブ名はVPNで進めた。
DDNSも使えるのは便利。とりあえずアドレスはあとからでも変更できるのでvpnなんとか.softether.netのアドレスだけメモってそのまま進める。
iPadからも使用した買ったのでL2TP over IPsecにチェック。iPadのVPN設定に必要なのでIPsec 事前共有鍵は忘れないように。

VPN Azureは無効にしておいた。

最後にユーザーだけ作っておいた。LinuxだとVPN経由だと鯖自分自身にアクセスできないのでローカルブリッジは後で設定する。
とりあえずこれでウイザードは完了。
あとはローカルブリッジ設定で仮想HUB "VPN"を選んで、新しいtapデバイス"vpn"と入力してローカルブリッジを追加をクリック。
上の表で動作中になれば完了。





2020年4月19日日曜日

SSD1309な2.42インチOLEDモジュールのI2C版

2.42インチのSSD1309なOLEDモジュールがAliexpressでやすかったのでポチってみた。
SSD1309なOLEDモジュールはSPI接続が多くてI2Cで使う場合はジャンパで変更したり改造したりしないといけないイメージだけど、最初からI2Cなやつが売っていた。
1.3インチとかだと袋だったりするけど、2.42インチはケースに入って送られてきた。まぁお値段も倍以上するしな…
付属のピンヘッダをハンダしてみた。縦置きと横置きのどちらでも使えるようにピンヘッダを取り付けるところは2箇所あるっぽい。このモジュールはI2Cのみ対応なので4Pinしかない。
裏面にはI2Cアドレス変更ジャンパが存在する。
Arduinoのライブラリだと0x78にジャンパをセットすると0x3C、0x7Aにセットすると0x3Dになる。
あとD2のところに「ACK responseが必要なときはD2をショートしてください」と書かれてる。前回改造した1.54インチOLEDモジュールは普通にジャンパしていたところだとおもうけど…

とりあえずそのままの状態でArduinoで試してみた。
使用したライブラリはThingPulse OLED SSD1306ライブラリ
SSD1309とSSD1306は制御コマンドが同じなのでSSD1306のライブラリがそのまま使用できる。

この状態ではサンプルが動かない…
ということで先程のACK応答が出る仕様に改造してみた。
D2のダイオードを取り外して、かわりに75Ωの抵抗を実装してみた。ショートと書いてあるので0Ωの抵抗とかでも大丈夫だと思う。逆に抵抗値が高すぎるとうまく動かなそうなので無難にショートの方がいいかも。

そうすると先程のライブラリで画面が映るようになった!
ACK応答を見ないでじゃんじゃんデータを送るようなプログラムだと多分この改造がいらないのかもしれない。

ちなみにThingPulseのライブラリで他のI2Cデバイスと共存させたい場合は初期化のところを
SSD1306Wire display(0x3c, SDA, SCL, GEOMETRY_128_64, I2C_ONE, -1);
にしておくといいかも。
その場合は
display.init();
の前に
Wire.begin(SDA,SCL);
も忘れずに。(SDAとSCLを変更する場合はdefineも忘れずに)
これならESP32でHW I2Cを使ってLCDとその他センサ類を共存できた。

やっぱり2.42インチ、大きくて見やすい。この解像度で0.96から2.42まであるけど2.42まで行くとドットのあらさが目立つようになるのでフォントもそれに合わせて選定するとよりかっこいいかも。

ちなみにI2C版のモジュールも何種類か存在するみたいで、今回購入したのはRESET回路が内蔵されているタイプだったけど、RESETピンが出てる5ピンタイプも存在してた。この場合はマイコンからリセットするか、リセット回路を内蔵すれば良さそう。SSD1309って結構リセットがシビアな感じがするのであえて外に出しているのかな…

2020年4月12日日曜日

HAKKO FX-600を買ってみた。

しばらく前から一応はセラミックヒーター式のハンダゴテを使っていたのだけども、会社で使っているハンダゴテがすごく良かったので購入してみた。一応ステーションもあるんだけどこっちのほうがサクッと出してハンダできて愛用していたので。
HAKKOのFX-600ってやつ。
Amazon限定のクリアモデルにしてみた。

コテ先はT18-CF2をチョイス。T18-C2も使ったことあるんだけど面のみのコーティングのほうが自分的には使いやすかったので。
まぁ半田するものにもよるんだろうけど、コテ先交換面倒なのでオールマイティーな感じのやつに。

温度調整が手元でできるの便利だし、電源入れてすぐに使えるのがすごく便利。
もっと早めに買っておけばよかったかもしれない…

2020年4月9日木曜日

Arduino Nano Everyクローンを買ってみた

Atmega4809を使ったArduino Nano Everyが気になったので探していたら安いクローンを見つけたのでクローンを買ってみた。
Arduinoは結構中国製のクローンが出回っているけど、たまにハズレを引くんだけどね…
今回はArduino Nano Every互換機が5ドルということでAliexpressから購入してみた。

Arduino Nano Every互換機と言う割にマイコンがAtmega4808だった。
Atmega4808とAtmega4809はピン数違いっぽい。
Atmega4809搭載版でも使ってないピンがそこそこあるので4808載せちゃったのかな。
Arduinoのピン配置はArduino Nano Everyと互換性を保ちつつ増やしている感じ。

Arduino IDEではArduino Nano Everyとして書き込みができなかった。調べてみるとこのクローンはThinaryというところが作ったボードらしい?
なのでGithubよりThinary Nano Every用のボード情報をダウンロードして来ないといけないっぽい。


デバイスマネージャーではUSB-SERIAL CH340として認識していた。
Win10だけど、特にドライバのインストールはいらなかった。
ちなみにUSBシリアルICとして340E930(CH340)が搭載されていて、JTAG2UPDI用にNuvotonのN76E003AQ20が搭載されていた。

ThinaryArduinoをArduino IDEに登録するにはArduino IDEの追加のボードマネージャのURLに
https://raw.githubusercontent.com/Thinary/ThinaryArduino/master/Thinary-boards-index/package_thinary_index.json
を追加して、ボードマネージャからThinaryを検索すれば出てくるようになる。
Thinary AVR Boardsを選んでインストールするとボードマネージャにThinary Nano Everyが追加される。

Arduino Nano Every同様、Arduino Nano(Atmega328p)との互換性を保つためのレジスタエミュレーション機能とかも使えるようだ。

megaAVR0シリーズはUPDIがつかえるので1Pinだけで書き込めるのが便利。ちなみにOptibootも対応バージョンが有るようなので今まで通りのシリアル書き込みできるような互換ボードも作れそう。
Atmega4809搭載Arduino互換機も作れちゃうっぽい。
UPDI対応するのにもう1個マイコン積むのも大変そうなので簡易的にはシリアルのブートローダーも良いかもしれないな。