Kumanの3.5インチモニタを回転させる

これ

今回はRaspberry pi 3 model Bに挿してつかう。

付属のCDにそのまま使えるRaspbianのイメージが入っているが、これを使うのは何されるのかわからんな?という声もよく見る。しかしまぁ、どのネットワークにも接続しないで使う予定だったので、ドライバ等の自前導入はせず、付属のイメージを使うことにした。

で、用途上はモニタを90度回転させると丁度良い感じなので、回転させる。

 

類似の商品が多いのでてきとうに調べていたら、2種類の情報があって、/boot/config.txtに

・display_rotate=90

・lcd_rotate=90

とかを書くとかいうのを得た。

ただし、前者だと画面は回転するがタッチスクリーンが回らなくて操作しんどい、後者だといい感じ!みたいな論調ばっかり。この口ぶりから分かる通り、うまくいきませんでした。lcd_rotateだとそもそも画面が回転しなかった。(要は別製品の情報なのかね)

 

Kumanのこの製品はWaveshareの3.5inch RPi LCD (A), 320×480 – waveshareのコピー製品、という情報を得たので(下の方にAnti-PiracyとかThis product is protected by patentとか書いてあるけど気にしない…)、Waveshareのそれっぽいサイトを眺めることにする。

5inch HDMI LCD -Waveshare Wiki

Screen orientation settings及びTouch screen calibrationの項で全てが解決した。キャリブレーションはメニューにも選択肢が最初からあったのでそっちを使っても良いかも。

 

きちんと一次情報を当たろうねとか、自前できちんと環境構築しようねとか、思いました(いつもの事では?)

Raspberry Pi 3 Model BでBrother HL-L2300を使う

環境はRaspbian(久々のDebian系だ)

 

一先ずCUPSを入れておく

$ sudo apt-get install cups

brotherから公式に提供されているドライバはi386なのでRaspberry piでは使えない…

という訳でぐぐってみたところ、それっぽいものをgithubで発見。

pdewacht/brlaser – github

対応プリンタ一覧にHL-L2300は無いが、HL-L2300Dがある。同一モデルのロケール違いっぽいのでそのまま突っ込む。

ビルドに必要なものをインストールしてから、REAMD.mdの通りに操作

$ sudo apt-get install build-essential
$ sudo apt-get install cmake libcups2-dev libcupsimage2-dev
$ git clone https://github.com/pdewacht/brlaser.git && cd brlaser
$ cmake .
$ make
$ sudo make install
$ sudo service cups restart

プリンターを接続し、CUPSのWebインターフェイスからプリンターを追加。

brlaserをインストールすると、モデル一覧にBrother HL-L2300D, using brlaser v4が出現するので、ここから追加すればおk

 

このままlprコマンドから印刷しようとすると怒られる。

$ lpr -o fit-to-page ./test.pdf
lpr: エラー - 利用可能なデフォルトの宛先がありません。

登録してやれば良い。一覧をlpstatで表示して、これをlpoptionsで指定する。

$ lpstat -p
プリンター Brother_HL-L2300_series は待機中です。2018年03月02日 00時55分09秒 以来有効です
$ lpoptions -d Brother_HL-L2300_series
copies=1 device-uri=usb://Brother/HL-L2300………(以下略)

あとはlprコマンドで普通に印刷できる。

GPD WINとArchLinuxInstallBattle

今更な話な上に大した内容でもなかった感。(この記事、実は何ヶ月も前に書いてあったんだけど、どういう訳か下書きのまま放置されてたんだよね、それを今回公開しただけという…)

 

本体ストレージをいじらずにいきたいので、小型のUSBメモリを用意して、そこにインストールする事にする。

BIOSでなくUEFIな環境にインストールする事を念頭に作業を進めれば特に問題は無い。

 

以下、引っかかったところとかをピックアップ。

 

・Live環境の起動時にUSB error -110を吐いて死ぬ

最初の見た目の状況としてはUSBメモリのラベル名が正しく設定されてない時に近かったが、USBメモリを見失って起動できなくなっているという状況の方が正しかった。

よくよく見てみるとUSB error -110を吐いて死んでるっぽかった。

usb – device descriptor read/64, error -110 – Stack Overflow

によると、要は電力が足りてないらしい。

USB3.0ポートにUSB3.0メモリを刺してるんだから動いて当然っしょと思っていたけど、何らかの理由で、電力供給が不安定になっていたみたい。しょうがないのでUSB2.0の延長ケーブルを通して接続してみたら、問題無く認識するようになった。

延長ケーブルを使うのは持ち歩きに邪魔なので、USB2.0メモリを使う事にした。

 

・画面向きがおかしいやつ

ArchWikiの通りに。

インストール後の環境にも適用するために、てきとうに設定しておく。今回はブートローダにgrubを使ったので、/etc/default/grubのGRUB_CMDLINE_LINUXにi915.fastboot=1 fbcon=rotate:1を追加しておく。

設定の適用はgrub-mkconfig -o /boot/grub/grub.cfgみたいな感じで。

 

・インストールしてからwifi-menuがdialogとかwpa_supplicantを要求するのでwifi-menuが使えない

これはGPD WINつーかただ自分がアホなだけ

Live環境からてきとうに入れておきましょう

 

GPD WINはおもちゃとして面白いと思うんだけど、外でホイホイっと使うには、入力系統がしんどくてあんまり気が乗らないんですよね。そういう意味ではGPD Pocketの方が優秀なんだけど、両方なんて買うお金は無いし、GPD WINの頃にGPD Pocketなんて知らなかったし…という

DAPを作る妄想その2

その2ってお前、その1はどこだよって思うかもしれないけどその1はあるんですよ、うんうん。

DAPを作る妄想

正直言って一体いつの話だよ、という感じだけど(実際一番最初に思いついたのは3年くらい前だったりする)、多少やる気を出してきたのでちょろっと書く。具体的な作業はあまりない。

 

・モニタ

NTSC/PAL (Television) TFT Display – 2.0″ Diagonal – AdafruitをAdafruitから仕入れたのは以前の記事の通り。駆動には最低6V必要だけど、電源には余ってるモバブを使う心積もりなので(生セル買ってきてもいいけど、電源管理ちゃんと考えないといけないし爆発怖いのでやめとく)、昇圧回路が必要。

昇圧回路には最大24V出力 LMR62421昇圧型スイッチング電源モジュール基板 – 秋月電子通商らへんを考えている。30mm四方なのでそんなに場所取らないんじゃないかなという思い込み。

ここにUIをうまく表示してやろうと、昇圧回路と後述のDACが届くまで、てきとうなプッシュスイッチ使って色々実験中。(後述)

 

・制御本体

Raspberry pi を使うつもりだったけど、Raspberry pi Zeroが手に入ったので、これを使おうかと。大幅なスペースの削減を達成できるはず。

ただし、これに伴って本体から直接出力してくれなくなったので、DACが本当に必要になった。

ケース関係で頼ろうと思っている人に相談してみたら、前の記事で書いてたようなデカいDACは場所食っちゃって使いにくそうと強めに言われたので、後述のDACを使う事にしてみる。

 

・音

pHAT DAC – Pimoroniを使ってみようと思う。これならRaspberry pi Zeroと同じような面積だし場所も取らない。

ちらちら見るに音としての品質はアレみたいな感じっぽいので、不満があったらまた考える事にする。

 

・ストレージ

Raspberry pi Zeroに変えた都合で、USBポートがmicro-Bが1つのみとなった。USB Hub必須っぽい?これが地味に場所を食いそうなので、迷いどころ。目処が立たない。メインストレージのMicroSDとは別に用意したいんだけどなぁ。

 

・UI

てきとうにコンソールアプリケーションとして作ってみるテストちう。具体的な構想も何もない。実験したのは以下みたいな感じ。

1.GPIOの特定ピンをON/OFF出来る(wiringPi使ってる)
2.プッシュスイッチの様子(つーかGPIOの各ピンの様子)をC++コードから見に行く
3.コンソール画面を随時書き換えてUI風味を作る

音に関係する部分はpHAT DACが届いてから手を付けるつもり。UI風味を発展させて、ファイルシステムからデータベースを作って、そこから選択するとかを実験してみる予定。

今はPoderosaで接続しに行ってそこで開発しているけれど、本当のモニタを使わないと表示具合がわからない(特に1画面内に収められる情報量がシビアになりそうだし)。昇圧回路の用意が出来たらそっちに移行しようと思っている。

 

pHAT DACの到着を待つか、昇圧回路をとっとと入手するか、どちらかが無いと、先には進めなさそうだなぁ。

GPD WINが届いた 開封〜初期セットアップ完了まで

indiegogoで投資してたGPD WINが届いたのでそのお話。

スペックとか詳細は普通に上記リンクから見てください()

開封の儀とか。

 

 

伝票剥がし済み

伝票剥がし済み

 

おやっ面積大きめ

おやっ面積大きめ

 

テープ留めはないががっしり梱包

テープ留めはないががっしり梱包

プチプチがぴったり張り付いている

 

化粧箱(サイズ比較用のL-01F)

化粧箱(サイズ比較用のL-01F)

意外と高級感のある化粧箱である(素材は紙だけど)

 

化粧箱にあるロゴ

化粧箱にあるロゴ

光を受けてきらきら反射する

さて、蓋を開けると

 

上下逆さじゃねーか

上下逆さじゃねーか

黒く潰したところにはWin10のプロダクトキーが書かれている

この本体を取り除くと次のような感じ

 

本体下本体下

左には保護フィルム(その下に説明書の箱)、右上には充電器の箱、右下にはイヤホンとUSBケーブルの箱と並んでいる

 

普通のAC-DC USBな充電器である普通のAC-DC USBな充電器である

出力は2.5Aと高め

出力は2.5Aと高め

 

実は初のUSB Type-Cである実は初のUSB Type-Cである

 

どこかで見たようなデザインだ

どこかで見たようなデザインだ

 

画面保護シートが付属なんて優しい

画面保護シートが付属なんて優しい

 

説明書表紙(よめない)

説明書表紙(よめない)

 

レイアウト。これは3言語記されている

レイアウト。これは3言語記されている

 

仕様表と保証関係の記述だが読めない

仕様表と保証関係の記述だが読めない

 

仕様表と保証関係の記述(英語なので読める)

仕様表と保証関係の記述(英語なので読める)

 

仕様表と保証関係の記述(普通の日本語だ)

仕様表と保証関係の記述(普通の日本語だ)

普通に普通の日本語(某ASRockみたいなことにはなっていない)。スタッフに日本人いそう(?)

 

本体(と比較用のL-01F)

本体(と比較用のL-01F)

サイズ感微妙だけど比較用のL-01F(5.2インチ)

 

ここで止まる

ここで止まる

 

並行までは開かないようだ

平行までは開かないようだ

 

閉じると少しの隙間がある(これによりゲーム関係の深いスイッチが画面に接触しない)

閉じると少しの隙間がある(これによりゲーム関係の深いスイッチが画面に接触しない)

キーボードはそこまで高くないけど、ゲーム関係のスイッチが割と高さある(スイッチは深め)ので画面に触れないか不安だったけど、この隙間があるおかげで接触していない

 

L1L2R1R2と各種端子類

L1L2R1R2と各種端子類

左からUSB-C, mini-HDMI, microSD, USB3.0, Audio

なお背面にある(親指付近)ものはファン速度調整のスイッチ。だいぶかたい

 

とりあえず電源入れてみる

GPDロゴの隣でくるくる回るWin感溢れるアレ

GPDロゴの隣でくるくる回るWin感溢れるアレ

 

軽々しく表示向きを変えるやつ

軽々しく表示向きを変えるやつ

本体をちょっとでも傾けると画面向き変わる

 

初期設定 まずは言語だ

初期設定 まずは言語だ

 

プロダクトキーの入力

プロダクトキーの入力

 

同意確認画面

同意確認画面

 

ネットワーク接続を試みるシーン

ネットワーク接続を試みるシーン

 

すぐに使い始めるころができます(すぐに使い始めることができるとは言ってない)

すぐに使い始めるころができます(すぐに使い始めることができるとは言ってない)

 

再起動を挟む

再起動を挟む

 

いきなり向きを変えるやつ

いきなり向きを変えるやつ

 

向きを変えたままログインを要求するやつ

向きを変えたままログインを要求するやつ

 

たくさんの優れた機能があるかも知れないがたくさんの糞機能が楽しめる環境

たくさんの優れた機能があるかも知れないがたくさんの糞機能が楽しめる環境

 

セットアップ完了

セットアップ完了

 

残り83%(電源投入から充電なし)

残り83%(電源投入から充電なし)

 

取り敢えずここまで。

どう使うかとかな〜んにも考えてないけど、ベンチちょろっとしててきとうに開発環境入れてSteam入れて…あとUSBブート出来たら嬉しいな

ちなみにタッチパネル対応である。こりゃ確かに保護フィルム必要になるね。

Vita TVを任意のバージョンのFWにアップデートする

勢いに任せて尼からVita TV(PSTV)の並行輸入品を購入した。

FW3.35くらいだったので取り敢えず3.60にして、あとHENkakuやなって感じ。

今は3.61が最新なので、素直にアップデートしようとすると3.61が降ってきてしまって、わざわざPSTV買った意味が一切なくなる。

任意のバージョンにアップデートするには、QCMA使う方法が紹介される事が多いんだけど、パソコン経由でアップデートできないPSTVの場合にはそれが使えない。

という事でセーフモードを使う。全体の流れは以下のとおり。

1.USBメモリにアップデートデータを放り込む
2.PSTVをセーフモードで起動
3.それらしい選択肢を選ぶ
4.USBメモリを接続、アップデートデータがUSBメモリからコピーされる
5.データのバージョンが目的のものか確認する
6.規約を読む
7.アップデートする
8.再起動して完了

FAT32でフォーマットしたUSBメモリを用意して、USBメモリ/PSVITA/UPDATE以下にPSVUPDAT.PUPという名前で保存する。

今回使ったアップデートデータのMD5は次の通り。

CD80B3DA55771C99557DB552542DFF2B

セーフモードでの起動は、電源断の状態から電源ボタン長押しで起動する(7秒以上押し続けるとかいう情報あり)。

あとは何も難しい事ないので画面の指示通りに、みたいな感じ。

 

HENkaku導入も特に問題無いっすね。henkaku.xyz行くだけ。

 

環境が複数ある事に意味があるのかどうかっていう気もするけど、まぁ持っておくだけでも気持ち的に意味はあるしいいかな。

 

ぼくがかったときよりPSTVやすくなってるんだけど……

 

ジャンクのPCH-1100を買った

ヤフオクでジャンクのPCH-1100(PSVitaの3G+WiFiモデル)を買った。そしたらジャンクという割には動くものが降ってきた。

分解レポートではなくて、ただの自分用メモ。どこが動いてて、どこを交換すればいいのか的な。

 

パッと見つけた不都合はこんな感じ。

・↓ボタンのクリック感が無い
・×ボタンの反応がクソ
・Rトリガー死亡
・Startボタン死亡?
・電源ボタンが勝手に反応する(?)
・Volume-ボタンが反応しない

 

↓ボタンはちゃんと反応しているのでいいとして、×ボタンの反応がクソなのは結構きつい。一応分解してエレクトロニッククリーナーとかコンタクトスプレーとか放り込んだけどダメだった。連打すればたまに反応するのでひとまず…。

電源ボタンについては、たまに勝手に画面ついてウザいだけなのでいいとして(?)、Volume-ボタンはダメ。電源ボタンは交換可能だが、Volume-はメインボードに備え付けなので交換不可能。

 

メモカも何も無いので大した検証は出来てないけど、メインボードがダメって事でパーツ取り品になるな。ボタン類が死にかけってだけで、中身は割りと生きてたっぽいのが大変勿体無い感じはするけど、またジャンク品落としたし、普通に一台組み上がればそれでいいかなー。中古パーツのお店も見つかったし普通に遊ぶ1台組み上げる事も出来るっぽい。やったね。

 

最終的に死んでるパーツは、

・Rトリガーのスイッチ(右基盤のせいかも)
・右基盤
・メインボード(ほぼ全部生きてるけどVolume-スイッチは死んでる)

というところか。2000円ぽっちで落とした割にはいろんなパーツが取り出せそうだ。

 

HENkakuリリースされたのでPSVitaでHello Worldする

もうhenkaku.xyz行ったらそれだけでぜーんぶ完了しちゃって一瞬にして終了しちゃうので、自分でビルドしてHello Worldしてみるか~というお話。

https://henkaku.xyz/developer/を参考に!

 

あんまり多くをインストールしてないArchLinuxで実験。

取り敢えず環境構築。

cmakeが必要らしいのでまずそれをインストールしてから。

$ sudo pacman -S cmake
$ git clone https://github.com/vitadev/vdpm
$ cd vdpm
$ ./bootstrap-vitasdk.sh

パーミッション周りでめちゃエラー出てたっぽい。

bootstrap-vitasdk.shの中を見ると、/usr/local/vitasdkを$USER:$USERにchownするコマンドがあったぽいけど、$USERなグループってあったか?usersじゃない?

というわけで手作業で実行しリベンジ

$ sudo chown tea:users /usr/local/vitasdk
$ ./bootstrap-vitasdk.sh
$ export VITASDK=/usr/local/vitasdk
$ export PATH=$VITASDK/bin:$PATH
$ ./install-all.sh

インストールできたっぽいのでサンプルソースをパクってきてビルドする

$ cd ~
$ git clone https://github.com/vitasdk/samples
$ cd samples/hello_world/src
$ arm-vita-eabi-gcc -c -o main.obj main.c
$ arm-vita-eabi-gcc -Wl,-q -o homebrew.elf main.obj
$ vita-elf-create homebrew.elf homebrew.velf
$ vita-make-fself homebrew.velf eboot.bin

出力されたeboot.binをvpkに放り込めよって書いてあったけど、既存のvpkにアーカイブマネージャで突っ込むのじゃ流石にダメだったので、vita-pack-vpkを使う

こちらでバイナリが拾えそうだったので使わせていただく。libzip.so.4がないよと怒られたのでlibzipのインストールも。

$ unzip vita-pack-vpk.zip
$ chmod +x ./vita-pack-vpk
$ ./vita-pack-vpk
./vita-pack-vpk: error while loading shared libraries: libzip.so.4: cannot open shared object file: No such file or directory
$ sudo pacman -S libzip
$ ./vita-pack-vpk
Usage:
/home/tea/vita-pack-vpk [OPTIONS] output.vpk
-s, --sfo=param.sfo    sets the param.sfo file
-b, --eboot=eboot.bin    sets the eboot.bin file
-a, --add src=dst    adds the file src to the vpk as dst
-h, --help    displays this help and exit
$ alias vita-pack-vpk=/home/tea/vita-pack-vpk
$ cd samples/hello_world
$ vita-pack-vpk -b ./src/eboot.bin out.vpk
.sfo file missing.

sfoファイルがないとダメらしい。それらしくつくってリベンジ。

$ vita-mksfoex -s TITLE_ID=XXXX00001 "hello world" param.sfo
$ vita-pack-vpk -s ./param.sfo -b ./src/eboot.bin out.vpk

エラー出なかったのでこれをFTP経由でVitaに放り込んで、あとは通常のvpkと同じようにインストール。

 

バブルできた

バブルできた

 

 

LiveAreaもできる

LiveAreaもできる

 

ちなみに、今回使ったソースコードは、

#include <psp2/kernel/processmgr.h>
#include <stdio.h>

int main(int argc, char *argv[]){
printf("Hello World!\n");
sceKernelExitProcess(0);
return 0;
]

みたいな感じ。(サンプルそのまんま)

標準出力にHello Worldしたそのすぐ後にはもう終わりそうな行があるし、次の行にはreturnなので、つまりPSVita側で実行したらおおよそ何も見えずに終了してしまうのであった。

forで10000回くらい回せば見れるでしょ~とか思ってやり直してみたんだけど、時間が長くなっただけで画面には何もうつらなかった。アプリケーション起動しても標準出力は見えないんかなぁ。

 

ちなみに、ばっちりMakefile用意して貰えてるので、vita-pack-vpkの導入さえ出来ていれば全自動でイケる。

SO-02Gを初期化しました

買った当初はKitKatだったのだけど、無事Lolipopのアップデートが降ってきたので、アップデートしたのでした。

 

アップデートした時に、一度初期化しようか迷ったんだけど、面倒だったのでスルーしちゃった。本当は初期化して最初からやり直したかったんだけど、某LINEとかいうクソアプリのトーク履歴のお話とかで、やり直すのが面倒だったのですよ。

 

で、まぁなんだか動作も不安定になってきたし、電池の減りも素早くなってきたので、一発初期化して様子見るか~って感じで、今日やりました。

 

特に難しいことはない、今日やったので、これから様子を見るという事で。

SO-02Gに貼っているガラスフィルムを交換した

メインで使っているケータイ、SO-02Gに使っているガラスフィルムがバッキバキになっていたので交換しました。マジにバッキバキです。

 

・表面

上部スピーカーの脇が浮いている

上部スピーカーの脇が浮いている

 

・背面

バッキバキである

バッキバキである

 

角なんてこんな状態。

ボロボロという言葉が似つかわしい

ボロボロという言葉が似つかわしい

 

 

さて、今回購入したガラスフィルムはこちら。

今回購入したもの

今回購入したもの

 

表裏1枚ずつ買いました。

 

パカっと開いた状態

パカっと開いた状態

右側にフィルム、左下にアルコールシートやスクレーパーなど、左上の空間には何も無い。

普通の内容物だ

普通の内容物だ(LiLiEと書いてある白い紙がスクレーパー)

 

ちなみに、フィルムが収まっているケース(?)の中には、

無駄にメーカーロゴシールが

無駄にメーカーロゴシールが

何に使えと言うのか…

 

 

貼り直しました(表面)

貼り直しました(表面)

貼り直しました(背面)

貼り直しました(背面)

 

ちなみに、非常に見えにくいですが、ズレと浮きがあります。

位置ズレ、少しの浮き

位置ズレ、少しの浮き

 

この写真では上方向(USB端子側)に貼付け位置がズレているように見えますが、そもそも穴の位置がズレていて、穴とカメラ・LEDランプの位置を揃えてしまうと、下側(電源ボタン側)にフィルムがはみ出してしまいます。なので少しずらして貼り付けました。

また、なんだかほんの少しだけ穴のところが浮いています。写真では非常にわかりにくいですが、実際に見ると結構気になりますね。ちなみに、背面フィルムはこうですが、表面はズレも浮きも全く無しに貼り付けられました。

 

ちなみに、SO-02G本体付属のクレードルには普通に入ります。薄さの為せる技って感じですね。入ってほんとに良かった。

 

 

僕が買った時はどちらも798JPYでしたが、在庫が切れて販売主が変わったのか、少し値上がりしています。レビューにもあるように、あまり強くはないみたいなので、複数枚買うのが良いでしょう。