Orange Pi Zeroのアップデートモデル LAN2個のOrange Pi R1登場


Allwinner H2+搭載のOrange Pi Zeroの派生モデルとして、LAN(100Mbps)が2個搭載されたOrange Pi R1というモデルが登場しました。
送料込みで$17.01です。

Orange Pi ZeroからUSBコネクタを外して、代わりにLANをつけたような感じです。
WiFiも積んでいますが、RAM 256MBモデルなのがちょっと惜しいところ。
また、1ヶ月ぐらいしたらRAM 512MBモデルも出てきたりするのかな?

単純に小型化目的だけだったら、SoCがAllwinner H5になったOrange Pi Zero Plus 2(H5)という選択肢もあります。
こちらだとRAMが512MBになり、HDMIコネクタがついてくるものの、RJ45のLANコネクタがありません。
価格は$23.05と、$6ちょっとの差です。

LTE/WiFi回線を使ってトランシーバー的環境を実現するZello PTT Walkie Talkieとトランシーバ的Android機


最近の小型Androidって、どんなのがあるのかな?と探していたら、トランシーバーみたいな外見のものを発見

てっきり144/430MHzのアマチュア無線帯の機能でも積んでるのかと思ったら、「Zello」というトランシーバーみたいな環境をLTE回線/WiFi環境を使って実現できるソフトウェアを使っているというものでした。

アンテナの出っ張りはLTE向けのアンテナでした。

他にどんなのがあるのかAliexpressで「zello walkie talkie」で検索すると、いろいろ出てくる。

ここに出てくるものは、みんな、Zello Walkie Talkieで使い安い様に左側面に送信ボタン(PTTボタン)が用意されているというAndroidです。

WCDMA(3G)回線のみのALPS F22、LTE回線も使えるALPS F25、WINIMA F100など、いろいろありました。

Zello」自体は仕事に使うのでなければ無料で利用できるようです。

AndroidだけではなくiOSやWindows Phone、BlackBerry、Windows PCにも対応しています。


ユーザアカウントを登録すると、こんな画面が現れます

通話したいチャンネル(上記ではテスト用のechoチャンネルが選択されています)を選び、丸いマイクボタンを押し続けると、押している間だけ音声による送信が可能となります。

話すと送信が止まり、他の人からの通信を聞く状態となります。

テキスト送信とかはできないようなので、ほんとに、トランシーバーとして使う、という感じです。

で・・・ZelloのAndroid版には、Androidに搭載されているボタンのうち、好きなものを1つ、送信ボタンとして設定することができるようです。

また、トランシーバー的使い方ができる外部接続マイクというのも「Zello Headset Accessories」でリストアップされています。

イヤフォンマイク端子に繋ぐものと、Bluetooth接続のものの2種類があります。

特定小電力のトランシーバーもいいですが、コレを使う、というのも面白そうですね

ラズパイ用Waveshare / Kuman 3.5インチ 320×480タッチパネル付き液晶をOrange Piで使う



正月にアマゾンで「Kuman Raspberry Pi 3 2用ディスプレイ タッチパネル 3.5インチ 320*480 SPI インターフェース Raspberry Pi Model B B+ A+ A SC06」というのがタイムセールで売っていたので買ってみた。

買ったまましまってあったのをすっかり忘れていたので、今頃になって使ってみた。

この製品はWaveshareの「3.5inch RPi LCD (A), 320×480」のコピー製品。
なので、情報はWaveshare側で追う必要がある。

いろいろ面倒な試行錯誤があったのですが、最終結果を書いておきます。

2017/04/10の時点では、液晶表示はできました。
タッチパネル動作については、まだ全然できていません。


Orange Pi PCでSPI接続の液晶で表示をする場合に必要な設定

インストールしておくもの

フレームバッファの動作チェックに使うfbiコマンド

apt install fbi

X-Windowを今回のLCDに出力するために使う

apt install xserver-xorg-video-fbdev

モジュールを読み込むための /etc/modules-load.d/waveshare.conf の内容

flexfb
fbtft_device

上記で指定したモジュールのパラメータ指定 /etc/modprobe.d/waveshare.conf の内容

options flexfb width=320  height=480  regwidth=16 init=-1,0xb0,0x0,-1,0x11,-2,250,-1,0x3A,0x55,-1,0xC2,0x44,-1,0xC5,0x00,0x00,0x00,0x00,-1,0xE0,0x0F,0x1F,0x1C,0x0C,0x0F,0x08,0x48,0x98,0x37,0x0A,0x13,0x04,0x11,0x0D,0x00,-1,0xE1,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0xE2,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0x36,0x28,-1,0x11,-1,0x29,-3
options fbtft_device debug=3 rotate=90 name=flexfb speed=16000000 gpios=reset:2,dc:71

X-Windowで表示させるための /usr/share/X11/xorg.conf.d/98-fbdev.conf の内容

Section "Device"
  Identifier "myfb"
  Driver "fbdev"
  Option "fbdev" "/dev/fb8"
EndSection

注: /dev/fb8 は環境によっては番号が変わるはずです

これで再起動することで、LCDに表示されるようになりました….

ただ・・・時々、うまく表示されないことがあるのが謎です・・・

armbianフォーラムの「[SOLVED] Orange PI PC H3 Winner, compiled with igorpecovnik jessie desktop」に/boot/bin/orangepipc.binをfexに変換し、[disp_init]と[hdmi_para]にある下記項目を変更する、という話があった。

[disp_init]
disp_init_enable = 1
disp_mode = 0
screen0_output_type = 3
screen0_output_mode = 5
screen1_output_type = 3
screen1_output_mode = 5
fb0_width = 800
fb0_height = 480
fb1_width = 800
fb1_height = 480
 
[hdmi_para]
hdmi_used = 1
hdmi_x = 800
hdmi_y = 480
hdmi_power = "vcc-hdmi-18"
hdmi_cts_compatibility = 1

この情報を元に関連する記述を下記の様に書き換えたところ、安定して表示されるようになった。

[disp_init]
disp_init_enable = 1
disp_mode = 0
screen0_output_type = 3
screen0_output_mode = 5
screen1_output_type = 3
screen1_output_mode = 5
fb0_format = 0
fb0_width = 320
fb0_height = 480
fb1_format = 0
fb1_width = 320
fb1_height = 480
hdcp_enable = 1
hdmi_cts_compatibility = 0

[hdmi_para]
hdmi_used = 1
hdmi_power = "vcc-hdmi-18"
hdcp_enable = 0
hdmi_cts_compatibility = 1
hdmi_x = 320
hdmi_y = 480

もちろん、元のbinファイルを「bin2fex orangepipc.bin orangepipc.fex」でテキスト形式のfexファイルに変換し、編集したあと、
「fex2bin orangepipc.fex orangepi.bin」でbinファイルに戻すという手順も行っています。


参考にしたサイト

・Raspberry PiとOrange PiのGPIO指定の違いについて
RaspBerry Piで遊んでみる」の「WiringPiとWiringOP」の記載と
このページで紹介されていた「WiringOP

実際に実行してみて得られた下記の実行結果からGPIOの番号を得ました

osakanataro@orangepipc:/work/lcd/LCD-show$ gpio readall
 +-----+-----+----------+------+---+-Orange Pi+---+---+------+---------+-----+--+
 | BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM |
 +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
 |     |     |     3.3v |      |   |  1 || 2  |   |      | 5v       |     |     |
 |  12 |   8 |    SDA.0 | ALT5 | 0 |  3 || 4  |   |      | 5V       |     |     |
 |  11 |   9 |    SCL.0 | ALT5 | 0 |  5 || 6  |   |      | 0v       |     |     |
 |   6 |   7 |   GPIO.7 | ALT3 | 0 |  7 || 8  | 0 | ALT3 | TxD3     | 15  | 13  |
 |     |     |       0v |      |   |  9 || 10 | 0 | ALT3 | RxD3     | 16  | 14  |
 |   1 |   0 |     RxD2 | ALT3 | 0 | 11 || 12 | 0 | ALT3 | GPIO.1   | 1   | 110 |
 |   0 |   2 |     TxD2 | ALT3 | 1 | 13 || 14 |   |      | 0v       |     |     |
 |   3 |   3 |     CTS2 | ALT3 | 0 | 15 || 16 | 0 | ALT3 | GPIO.4   | 4   | 68  |
 |     |     |     3.3v |      |   | 17 || 18 | 0 | ALT3 | GPIO.5   | 5   | 71  |
 |  64 |  12 |     MOSI | ALT4 | 0 | 19 || 20 |   |      | 0v       |     |     |
 |  65 |  13 |     MISO | ALT4 | 0 | 21 || 22 | 0 | ALT3 | RTS2     | 6   | 2   |
 |  66 |  14 |     SCLK | ALT4 | 0 | 23 || 24 | 0 | ALT4 | CE0      | 10  | 67  |
 |     |     |       0v |      |   | 25 || 26 | 0 | ALT3 | GPIO.11  | 11  | 21  |
 |  19 |  30 |    SDA.1 | ALT4 | 0 | 27 || 28 | 0 | ALT4 | SCL.1    | 31  | 18  |
 |   7 |  21 |  GPIO.21 | ALT3 | 0 | 29 || 30 |   |      | 0v       |     |     |
 |   8 |  22 |  GPIO.22 | ALT3 | 0 | 31 || 32 | 0 | ALT3 | RTS1     | 26  | 200 |
 |   9 |  23 |  GPIO.23 | ALT3 | 0 | 33 || 34 |   |      | 0v       |     |     |
 |  10 |  24 |  GPIO.24 | ALT3 | 0 | 35 || 36 | 0 | ALT3 | CTS1     | 27  | 201 |
 |  20 |  25 |  GPIO.25 | ALT3 | 0 | 37 || 38 | 0 | ALT3 | TxD1     | 28  | 198 |
 |     |     |       0v |      |   | 39 || 40 | 0 | ALT3 | RxD1     | 29  | 199 |
 +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
 | BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM |
 +-----+-----+----------+------+---+-Orange Pi+---+------+----------+-----+-----+
osakanataro@orangepipc:/work/lcd/LCD-show$

・Waveshare 3.5インチTFTパネルのメーカ公式情報
3.5inch RPi LCD (A), 320×480 製品ページ」と「3.5inch RPi LCD (A)情報ページ
最終的には、ピンをどのような用途で使っているか、しか参考になる情報は無かった。

・Waveshare 3.5インチTFTパネルを汎用のflexfbで認識させるパラメータ
おっさんエンジニアの実験室」の「Waveshare 3.5 Spotpear TFTパネルをRPi2に付けて・・」で紹介されているfbtftのIssue#215「Support for Waveshare 3.5 Spotpear」の「fergie4000さんのコメント

modprobe flexfb  width=320  height=480  regwidth=16 init=-1,0xb0,0x0,-1,0x11,-2,250,-1,0x3A,0x55,-1,0xC2,0x44,-1,0xC5,0x00,0x00,0x00,0x00,-1,0xE0,0x0F,0x1F,0x1C,0x0C,0x0F,0x08,0x48,0x98,0x37,0x0A,0x13,0x04,0x11,0x0D,0x00,-1,0xE1,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0xE2,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0x36,0x28,-1,0x11,-1,0x29,-3
modprobe fbtft_device debug=3 rotate=90 name=flexfb speed=16000000 gpios=reset:25,dc:24

fbtft_deviceのgpios指定はRaspberry Piの場合で、そのままOrange Pi PCで使うとセグメンテーションフォルト。
WiringOPを実行(gpio readall)して、resetで使う22ピンのRST、dcで使う18ピンのLCD_RSがOrange Pi PCでは何番にあたるかを確認。
wPiなら「gpios=reset:6,dc:19」、BCMなら「gpios=reset:2,dc:71」ということで、試してみた結果、後者の「gpios=reset:2,dc:71」となった、

・fbtft_deviceとflexfbのパラメータの意味
fbtft_device」と「flexfb
とはいえ、flexfbのinitパラメータに関しては完全に呪文

・fbtftの表示動作確認で使えるコマンド
fbtft公式の「Framebuffer use」。
fbiコマンドで画像出力する、というのが簡単。

・armbianでのモジュールパラメータの設定方法
Allwinner(Generic)のEnable Hardware Features」の「Connect your LCD Display

・Waveshare 3.5インチTFTパネルのタッチパネルを認識させるパラメータ
fbtftのIssue#215「Support for Waveshare 3.5 Spotpear」の「pykoonさんのコメント
fbtft wikiの「Touchpanel

ただし、armbian環境ではads7846_device が無く、ads7846 しかない。

ラズパイではoverlaysで制御するようだが、armbian wikiの「Allwinner DT overlays」にあるarmbian-add-overlayを実行しようとしても無いので、使えなさそう・・・
armbian forumの「ads7846 / Banana pro」を見ると使えそうなことが書いてあるんですが・・・

99-calibration.confのサンプル

Section "InputClass"
        Identifier      "calibration"
        MatchProduct    "ADS7846 Touchscreen"
        Option  "Calibration"   "3932 300 294 3801"
        Option  "SwapAxes"      "1"
EndSection

・バックライト関連
fbtftのwikiに「Backlight」という項目はあるのだが、製品ページのピン配列を見ると該当しそうなものが見当たらない。
制御できないのではないか?


2017/05/05追記

・タッチパネル続報
三日坊主な私がいつまでブログやれるか...( ̄~ ̄;)の「Raspberry Pi でタッチパネル」に、下記でads7846_device単体でのコンパイルができる、という記載を発見

git clone https://github.com/notro/fbtft_tools.git
cd ~/fbtft_tools/ads7846_device; make && sudo make install

これを試してみると、armbian環境でもコンパイルできた。
調整の手法については、
特に縛りなくの「ebayで購入した3.2インチTFT液晶をRaspberry Piで使ってみる」と、fbtft公式の「ads7846_deviceのマニュアル
をあわせてみて試したところ、下記でとりあえず、タッチパネルの認識ができることを確認

insmod /lib/modules/3.4.113-sun8i/extra/ads7846_device.ko  gpio_pendown=1 cs=0 verbose=2 x_min=270 x_max=3830 y_min=340 y_max=3900

しかし、fbtft_deviceとバッティングするようで、どちらかしか利用できない状態
どうすればいいのかなぁ・・・

・動画再生
armbianのmplayはmplay2なので

sudo SDL_VIDEODRIVER=fbcon SDL_FBDEV=/dev/fb8 mplayer -vo sdl -framedrop -vf scale=360:240 動画.mpg

-vf scaleで適切なサイズを指定して縮小処理を行うような指定にしないと、動画の表示サイズが大きい場合、再生出来ない。

メモリ2GBになったOrange Pi Win Plusが登場



ようやくOrange Pi Win用のOSイメージが「公式ダウンロードリンク」に追加されたのでダウンロードを開始。
1つめが終わって2個目をダウンロードしようとしたらページがないという・・・

おや?と思ってページをリロードしてみると、さきほどまで「Orange Pi Win」と書かれていたものが「Orange Pi Win and WinPlus」に書き換わっているという・・・

そんなわけで、Allwinner A64搭載で、メモリが2GBになったOrange Pi Win Plusが登場です。
Orange Pi Win Plus Development Board

既存のOrange Pi Winは送料込み$28.41でしたが、メモリが1GBから2GBに増強されたOrange Pi Win Plusは$33.84になりました。
昨日発売されたAllwinner H5搭載のOrange Pi Primeもメモリ2GBで$33.84ですね。

どちらがいいかは悩むところですね

・Orange Pi Win Plusの利点?
 他にも採用例が多いAllwinner A64
 Windows IoTにも対応する可能性大
 電源をmicroUSBコネクタとすることも可能
 無線/BTがAP6121
 LCD端子(MIPI DSI 30ピン)があるので直つなぎもできる

・Orange Pi Primeの利点?
 電源は従来のOrange Piシリーズと同様にEIAJ#2で供給の安定化をはかっている
 無線/BTが、おそらくRTL8723CS 
 RCAビデオ出力がある


下記は、Allwinner H5/A64搭載のボードリストです。

Allwinner H5でRAM2GBのモデルOrange Pi Primeが送料込み$33.84で登場



Allwinner H5搭載のOrange Piシリーズに、またもう1モデル登場です。

Orange Pi Prime Development Board

Orange Pi PC2のRAMを増やして、WiFi+Bluetoothを追加したようなモデルです。

Orange Pi WinやOrange Pi Zero Plus2とは異なりeMMCは搭載されていないため、OSは従来通りmicroSDにインストールします。


下記は、Allwinner H5/A64搭載のボードリストです。