カテゴリー別アーカイブ: メンテナンス

デジタルODOメータ修理! (その2)

前回対応した策だと、全体(ODO-Display/GPS-Clock共)に、電力不足になってしまった。

GPS-Clock側の電源回路の5Vレギュレータは、Max:0.5Aだった。。→ TA48M05F

  • Tennsy3.1 (GPS-Clockメインロジックボード)
  • AE-GPS (GPSモジュール)
  • 1.8インチ SPI-LCD *2枚

が、接続されていることになるけど、ぜんぜん足りないね。^^;

というわけで、

Teensy3.1に、USBケーブル接続してあったので、こいつに5V給電することに。

※とりあえず横着Versionということで。そのうち、ちゃんとメータばらして、大元の5Vレギュレータの容量アップします。:-)

では、作業開始!

足元ばらして〜


(↑ばらす前)

12V→5V DC/DCコンバーターつけて〜

でもって、テスト〜

どっちも、安定したよ!!

組戻して、完了〜

前回と今回の対応後の回路はこんな↓感じ

Before

ODO Displayの1.8 TFT-LCDへの電源(Vcc/GND)ラインの配線は、Arduino側(助手席)から3mくらい伸ばしていたので、ここで、かなりDropはしていたかなと。。

2ndバッテリーの消費電力も測るよ! (その2)

昨日の続き〜

INA226組み込むヨ。

# i2cdetect -y 2
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: 40 41 -- -- 44 -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- 76 --                         
  • 0x40: System V/A (3rd-Battからのmz20monの電力測定用)
  • 0x41: Alternator V/A(1st-Battからのオルタネータの電力測定用)
  • 0x44: 2rd-Batt V/A (2nd-Battからの電力用)

ついでに、GPS関連も見直し!

旧:

  • GPS-M1ZZ→(PCI-SERIAL)→mz20h270
  • AE-GPS→(USB-SERIAL)→mz20mon-nanopct4

新:

  • GPS-M1ZZ→(USB-SERIAL)→mz20mon-nanopct4→(MQTT)→mz20h270

というわけで、PCへの入力するGPSレシーバは1台に。

あと、mz20h270の電源はIGN連動へ戻した。

だいたいできたので、内装戻して完了〜

試走がてら、新倉PAへ!

2ndバッテリーも、ちゃんと測定できてるねー

現在の電源廻りの構成

負荷一覧

  • 1st(Optima)
    • 純正電装
      • MZ20 EFI関連 (スターター、イグニッションコイル、スパークプラグ、燃料ポンプ、ECU等)
      • エンジンルーム内電装(エアコンコンプレッサー、ファン、センサー等)
      • 灯火類(ヘッドライト、ウィンカー、テール等)
      • 室内イルミネーション
      • パワーウィンドウ
      • メーター
      • 電子コンビネーションスイッチ
      • 電動チルトステアリング
      • オートドライブ関連
      • エアコン・ヒーター関連
      • ワイパー
      • ドアロックソレノイド
    • 追加・変更電装
      • パワーシート(レカロ)
      • 走行充電器 *2
      • HKS EVC5
      • HKS CAMP+Junction-BOX
      • レーダー探知機
      • ルームミラーモニター (CAMP画面用)
      • 3.5インチLCD+Raspberry Pi3 A+ (ステアリングパッド情報システム用)
      • GPS-Clock
      • ODOカウンター、ODOメーターディスプレイ
      • Viperセキュリティ
  • 2nd(WP50-12NE)
    • 助手席モニター (Eyoyo 12 インチモニター)
    • Panasonic Strada CN-F1XD
    • KENWOOD KSC-SW11
    • 300Wインバーター
    • Raspberry Pi2 (エアコンパネル用)
    • Raspberry Pi3 (LED-Matrix用)
    • 128×32 LED Matrixパネル
    • 8port GbE スイッチングハブ
    • トランクLEDバー
    • トランクオープナーソレノイド
  • 3rd(LGK75-12N)
    • mz20mon-nanopct4 (NanoPC-T4 ARMv8)
    • mz20h270 (Corei5)
    • GPSレシーバー (GPS-M1ZZ)
    • BDプレーヤー (Panasonic DMP-BD90)

2ndバッテリーの消費電力も測るよ!

現在、2ndバッテリーは、下記機器がつながってる。

  • Strada CN-F1XD
  • 300W正弦波インバーター
  • KENWOODサブウーハー
  • 8ポートスイッチングハブ
  • Raspberry pi2
  • Raspberry pi3
  • LED 128×32 Matrix ボード
  • ESP-WROOM-02(2個くらい)
  • Teensyいっぱい
  • Arduinoいっぱい
  • その他

で、現在は、電圧計しか付けてないのでINA226で、電流も測ることに!

まずは、シャント抵抗(100A用)を取り付け〜

ケースは、100均で買ったタッパ的なやつ。

INA226をmz20monに追加するよ。

続く。

車載PCメンテ

車載PCの電源周りが不調だったので、いろいろメンテ!

まずは、いつものように、リアを開けて~

車載PC電源取り出し!

M4-ATX-HV自体もリプレース(予備機と)

↓外したコ

でもって、車両の追加機器のACC/IGN周り修正!

こんな感じに!

IGNスイッチの接点

  • ACCラインに、電解コンぶちこみ、
  • ACC/IGNにダイオード入れて、それを、ACC用リレーのコイル側に。
  • 要するに、START時も、ACCラインは切れないように。(上記のように、IGNスイッチ接点は、Start時、ACCはオープンなので)
    • スターターは、メインバッテリー
    • 追加ACC系電装品は、2ndバッテリー

それから、車載PC9号機の電源入力は、2ndバッテリーでなく、3rdバッテリーからとることに。

MZ20APの電源も接続。

まぁ、だいたいできたので、戻します!

戻したよ。

というわけで、今回のメンテは終了。

今回のメニュー

  • mz20mh270のM4-ATX-HVリプレース
  • MZ20AP(wifi-AP)の電源接続
    • 旧:mz20h270のUSBポート、新:2nd-BattのACCラインからDC/DCコンバータ(5V)経由。
  • mz20h270配線確認&整備
  • 2nd-BattのACCラインリレー電源仕様変更(前述の回路図の通り)

ステアリングパッドをリニューアルするヨ (その4)

Raspberry Pi Zero → Pi3 Model A+化に伴い、消費電力増加してたのを忘れてたので、その対策の、続き!

ROHMのレギュレータがうまく動かなかったので、

共立エレショップでゲットした、パーツで、再度チャレンジ

    • DC/DCコンバータ 5V/2A (MORNSUN K7805-2000)
    • 接点容量5Aリレー (OMRON G6B-1114P)

回路も一部修正(現状の仕様に沿って、回路図側を修正)

そんでもって、基板作成~

キャパシタ 5.4V 7.5F (前は、5.4V 3.5Fなので2倍以上!)

組み立て~

実車でテスト!

うまくいきました!

これで、今回のリニューアルは完了ですね。一旦。

以上!

ステアリングパッドをリニューアルするヨ (その2)

電源制御周りも見直し!

ACCラインがカットされたら、OSもちゃんとshutdownするように変更。

なので、ACCライン監視を入力することに。

shutdownが十分間に合うように、PIC12F675側も修正!

ACCオフ後の電源カット時間を、約4sec→約10secへ。

監視アプリも作って、動作テスト!!

問題ないので、組み立て~

実車に戻して~

完了~

mz20mon-nanopct4 (その2)

fanコントローラーと、PowerインジケータLED追加!

RTC用のバックアップバッテリーも追加!

左上の単4電池:RTC用バックアップバッテリー
そのすぐ右側の黒いやつ:USB(LTEモデム用)電源コントローラー → 過去ブログ参照1 参照2
右上の青いLCD付いたやつ:昇降圧電源モジュール(出力12.10V固定)
その下の基板(緑系)2個:I2Cな電圧電流計(INA226)
そのすぐ左の基板(茶色系):ファンコントローラー (手抜きな NPN&リレー制御)
そのすぐ真下の白いやつ:4ポートUSB-HUB
右下:ケースファン(ファンコントローラー経由)
左下:NanoPC-T4本体

だいたいできたので、車載するヨ

実車テスト&Debug

シリアルコンソールは、mz20h270へ接続!(FT232 USB-Serial経由)

一旦、いい感じ!!

続く~

 

before/after

左(上):mz20mon-tinker、右(下):mz20mon-nanopct4

mz20mon-nanopct4

NanoPC-T4のテストがだいぶいい感じになってきたので、詰め替えしますヨ

Tinker-Board Sを外して、ケース加工!!

NanoPC-T4は、電源ボタンを押す必要があるので、ハードボタン(黄色のやつ)取り付け!

電源ボタンスイッチにリード線半田付け。そいつを黄色ボタンに。

ケースに詰め込んだヨ

ラベルも貼り替えて!

GPIOはnanoPC側の都合で、レイアウト変更。

続く〜

おまけ

Orange Pi-RK3399との比較

左:Orange Pi-RK3399 右:NanoPC-T4

NanoPC-T4 を試すヨ (その3)

オンボードのWiFi-NIC(wlan0)その後

  • ifconfig wlan0 down しちゃうと、wpa_supplicantでエラー出続ける。
  • そもそも、不安定。
  • shutdown時、かなりの確率でkernel-panic

というわけで、やはり、kernelをちゃんとビルドしよう。

docs.armbian.com/Developer-Guide_Build-Preparation/

↑これを参考に、kernelチューニングしてイメージをビルドすることに。

kernel変更箇所

  • そもそも元のソースが最新版出てた! linux-4.4.174-rk3399_5.75_arm64 → linux-4.4.176-rk3399_5.76_arm64
  • config削除箇所
    • CONFIG_IPV6
    • CONFIG_WIFI_LOAD_DRIVER_WHEN_KERNEL_BOOTUP
    • CONFIG_AP6XXX
      • ↑こいつがオンボードのWiFiのドライバ。デフォでは、モジュールでなくkernel組み込みでビルドされてるので厄介。なので、さくっと削除!(W

そして、uBootパラメタもちょっと変更

  • console=display

SDカードに反映して、boot!

うまくいったヨ!!

wlan0は無事認識しなくなりました(w
ついでに、IPv6も、いなくなりました(w

# uname -a
Linux mz20mon-nanopct4 4.4.176-rk3399 #5 SMP Wed Feb 27 23:40:40 JST 2019 aarch64 aarch64 aarch64 GNU/Linux
# ifconfig 
eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.3.246  netmask 255.255.255.0  broadcast 192.168.3.255
        ether 0e:46:74:29:84:cb  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 24  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1  (Local Loopback)
        RX packets 1580  bytes 136257 (133.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1580  bytes 136257 (133.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.129.10  netmask 255.255.255.0  broadcast 192.168.129.255
        ether 60:84:bd:5a:31:8c  txqueuelen 1000  (Ethernet)
        RX packets 3160  bytes 397202 (387.8 KiB)
        RX errors 0  dropped 1  overruns 0  frame 0
        TX packets 2393  bytes 732946 (715.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
# ethtool -i wlan1
driver: rtl88xxau
version: 
firmware-version: 
expansion-rom-version: 
bus-info: 3-1:1.0
supports-statistics: no
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no

dmesg/journalctl共に静かになりました。

USB-NICもONにしたときの、lsusb

# lsusb -t
/:  Bus 06.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M
    |__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=ftdi_sio, 12M
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 3: Dev 3, If 0, Class=Vendor Specific Class, Driver=rtl88xxau, 480M
        |__ Port 4: Dev 9, If 0, Class=Vendor Specific Class, Driver=ax88179_178a, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M
    |__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=pl2303, 12M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M

続く〜

NanoPC-T4 を試すヨ (その2)

電源は、昇降圧電源経由で。

12V時、0.2〜0.4Aかな。bench中は、0.8Aくらいまで。

OS関連その後、、

移行を進めてたら、なんと、iptables関連が一切ビルドされてなかった。。。

公式なimageでのkernelは諦め、armbianをテストすることに!

www.armbian.com/nanopc-t4

取り急ぎ、sdにイメージを焼いて、ブートしてみた!

# uname -a
Linux mz20mon-nanopct4 4.4.174-rk3399 #31 SMP Sun Feb 10 00:37:23 CET 2019 aarch64 aarch64 aarch64 GNU/Linux
# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
# lsmod 
Module                  Size  Used by
iptable_filter         16384  0
af_packet              40960  12
dm_mirror              24576  0
dm_region_hash         20480  1 dm_mirror
dm_log                 20480  2 dm_region_hash,dm_mirror
midgard_kbase         405504  0
rk_vcodec              65536  0
ip_tables              24576  1 iptable_filter
x_tables               32768  2 ip_tables,iptable_filter
autofs4                40960  2

Goodです!!

aarch64なので、gpioバイナリも問題なし!!

# ldd /usr/local/bin/gpio
        linux-vdso.so.1 (0x0000007f866c0000)
        libwiringPi.so => /usr/local/lib/libwiringPi.so (0x0000007f8664b000)
        libwiringPiDev.so => /usr/local/lib/libwiringPiDev.so (0x0000007f86633000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x0000007f865fe000)
        librt.so.1 => /lib64/librt.so.1 (0x0000007f865dd000)
        libm.so.6 => /lib64/libm.so.6 (0x0000007f8651c000)
        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000007f864d3000)
        libc.so.6 => /lib64/libc.so.6 (0x0000007f8635b000)
        /lib/ld-linux-aarch64.so.1 (0x0000007f86692000)

この環境が良さげすね。

  • ベースのSDカードbootイメージ
    • Armbian: Armbian_5.75_Nanopct4_Debian_stretch_default_4.4.174.img
  • rootfs
    • Fedora 29 (aarch64) 改
  • WiringPi(NP)
    • rk3399-sd-friendlydesktop-bionic-4.4-arm64-20181219.img 付属のバイナリ!

wifiとかserialとか

オンボードなwifi(wlan0)は、dmesgにエラー吐きまくりでキモいので、usbなnicに。

usb-serialは、FT232なやつ2個でいこうかな。gpsとcamp用。

# lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 0411:0242 BUFFALO INC. (formerly MelCo., Inc.) 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 003: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 002: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
# ethtool -i wlan1
driver: rtl88xxau
version: 
firmware-version: 
expansion-rom-version: 
bus-info: 3-1:1.0
supports-statistics: no
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
# udevadm info --attribute-walk -n /dev/ttyUSB0

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/platform/fe3a0000.usb/usb6/6-1/6-1:1.0/ttyUSB0/tty/ttyUSB0':
    KERNEL=="ttyUSB0"
    SUBSYSTEM=="tty"
    DRIVER==""

  looking at parent device '/devices/platform/fe3a0000.usb/usb6/6-1/6-1:1.0/ttyUSB0':
    KERNELS=="ttyUSB0"
    SUBSYSTEMS=="usb-serial"
    DRIVERS=="ftdi_sio"
    ATTRS{latency_timer}=="16"
    ATTRS{port_number}=="0"

  looking at parent device '/devices/platform/fe3a0000.usb/usb6/6-1/6-1:1.0':
    KERNELS=="6-1:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="ftdi_sio"
    ATTRS{authorized}=="1"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bInterfaceClass}=="ff"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bInterfaceProtocol}=="ff"
    ATTRS{bInterfaceSubClass}=="ff"
    ATTRS{bNumEndpoints}=="02"
    ATTRS{interface}=="FT232R USB UART"
    ATTRS{supports_autosuspend}=="1"

  looking at parent device '/devices/platform/fe3a0000.usb/usb6/6-1':
    KERNELS=="6-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="8"
    ATTRS{bMaxPower}=="90mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0600"
    ATTRS{bmAttributes}=="a0"
    ATTRS{busnum}=="6"
    ATTRS{configuration}==""
    ATTRS{devnum}=="2"
    ATTRS{devpath}=="1"
    ATTRS{idProduct}=="6001"
    ATTRS{idVendor}=="0403"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="FTDI"
    ATTRS{maxchild}=="0"
    ATTRS{product}=="FT232R USB UART"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="unknown"
    ATTRS{serial}=="AH00TNQA"
    ATTRS{speed}=="12"
    ATTRS{urbnum}=="16"
    ATTRS{version}==" 2.00"

  looking at parent device '/devices/platform/fe3a0000.usb/usb6':
    KERNELS=="usb6"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{authorized_default}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0404"
    ATTRS{bmAttributes}=="e0"
    ATTRS{busnum}=="6"
    ATTRS{configuration}==""
    ATTRS{devnum}=="1"
    ATTRS{devpath}=="0"
    ATTRS{idProduct}=="0001"
    ATTRS{idVendor}=="1d6b"
    ATTRS{interface_authorized_default}=="1"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Linux 4.4.174-rk3399 ohci_hcd"
    ATTRS{maxchild}=="1"
    ATTRS{product}=="Generic Platform OHCI controller"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="unknown"
    ATTRS{serial}=="fe3a0000.usb"
    ATTRS{speed}=="12"
    ATTRS{urbnum}=="27"
    ATTRS{version}==" 1.10"

  looking at parent device '/devices/platform/fe3a0000.usb':
    KERNELS=="fe3a0000.usb"
    SUBSYSTEMS=="platform"
    DRIVERS=="ohci-platform"
    ATTRS{driver_override}=="(null)"

  looking at parent device '/devices/platform':
    KERNELS=="platform"
    SUBSYSTEMS==""
    DRIVERS==""

# cat /etc/udev/rules.d/99-local.rules
KERNEL=="ttyUSB*", KERNELS=="2-1*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="ttyUSB_gps"
KERNEL=="ttyUSB*", KERNELS=="6-1*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="ttyUSB_camp"

続く〜

ガレージ改善プロジェクト

照明制御とリモコン制御の基板を作り直した。

変更点

  • シャッターリモコン制御
    • フォトカプラの発光側の抵抗を180Ωに変更
    • リモコンに穴を開けて、配線をちゃんと外へ出した
    • リモコンの電池を新品に(CR2025)
  • 照明制御
    • SSR制御の電圧を12Vへ変更

新品リモコンも届いたので登録!

リモコンクライアントデザインもちょっと変更!

後は、ネコ閉じ込み防止対策機器導入。(w

ガレージ改善プロジェクトは続きます。。。

mz20h270不具合 改修!

部材が揃ったので、不具合改修開始!

まずはばらして〜

でもって、USB3.0リピーターケーブル(5m)の敷設!

お次は、HUBのリプレース。
と思ったのだけれども、前のHUBが両面テープガチガチで取れない。。
仕方ないので、前のは残したまま、7ポートHUBを追加!^^;

HUBの電源は前のHUBの電源をそのまま流用。

リピーターの電源ケーブルを作成し、配線!

できたので、テスト!

うまくいったみたいだヨ!
DTMF用のUSBがちゃんと認識できてなかったので、

/etc/udev/rules.d/50-local.conf

を修正し、無事正常に認識!

とりあえず、これで、しばらく様子見ですかね。

続く〜

mz20mon-tinker メンテ SSD入れ替え (11/17)

/dataの容量アップのため、SSD入れ替え。

120GB→250GBへ。

トランク内で、mz20mon-tinkerを開けて、new SSDへ交換。旧SSDは、USBケース経由で、テンポラリー接続。

キーボードはルーフ上でタイピングw

データ移行〜

うまくいったよ

mz20h270との連携も問題なし!↑mz20h270画面

ついでに、リアシートブランケットも

以上〜

mz20mon-tinkerメンテ

mz20mon-tinkerの臨時メンテ!

今回の内容

  • 4cm角 ファン追加 (12V駆動)
  • INA226の配線引き直し
    • 0x40の方のINA226のSDAが断線しかかってたので。
  • OS整備
  • script整備

zabbixで、電圧が時々81.92Vとかになって、電流は0Aになって、、おかしーなーと思い調査!

1つ目のINA226のSDA(I2C)ラインが断線しかかってました。これの影響で、I2C通信全体が不安定になり、正常な値が取得できてなかったです。

配線直して、ファンも追加!

そんでもって、OSやscriptを整備して、終了〜

 

内装戻しますヨ

終了〜

mz20monとの通信(その2)

mz20mon → (wifi) → (openvpn) → garent

の通信は安定したかなーと。

が、LTE-Modem(FS040U)側は相変わらず、不安定。。。

PIX MT-100は、すぐに、kernel panicになるし。。

ATerm MR04LNのusbテザリングも、すぐに切れちゃう。。

そんなわけなので、usbなLTE-Modem直接はやめて、

USB-NIC(AX88179) → (Ether) → LTE-Router(ATerm MR04LN withクレードル) →

でためそうかなと。

続く。

mz20monとの通信

なんか、最近、mz20monとの通信が切れまくるので、改善すべく作業中。

まずは、openvpnのバージョンを合わせてみた。

mz20mon-tinker側は、最新の2.4.6だったのだけれども、サーバー側が、2.2のままだったので、こいつを、2.4.6に上げました。crl.pem問題が発生したので対処してクリア!

とりあえず、接続は問題なくできた。

しばらく様子見ですかね。

続く。

エアコンパネルモニタの表示内容変更とか。

助手席モニタとエアコンパネルモニタの表示内容が冗長すぎなので、少しずつ表示内容を変更しています〜

エアコンパネル側の現在地は、都道府県レベルに!

んでもって、助手席モニタ側は、

市区町村制覇比率(達成度)の表示を追加しました〜

続く。

トランクルーム リニューアル

NaO10号の、トランクルームリニューアルです。

注文していた、棚が届いたので、さっそく開梱して、背面板を撤去(w

次に、mz20mon-tinkerのケースリプレース!

前のやつより、一回り大きくなりました。

今回のメインの目的ですね。

mz20mon-tinkerの放熱性を上げるため、ケースを大きくすることにしたのですが、そうすると、トランクの棚に入らなくなる。
なので、棚も大きくしました。。。^^;

でもって、いろいろ撤去!


↑引退した、棚

新しい棚にします~

耐震マットとか買いに、ダイソーへ。

いろいろ固定!

だいたい完成です!

内装戻します~

まだ、途中ですが、完成!!

変更後!

↓変更前

マルチメータアプリ(仮称)にアイコンつけてみた!

メータ表示数が増えてきたので、アイコンをちゃんと作ってつけてみた!

Before / After

 

上から、

  • 車載PC(この画面を表示しているPC)への入力電圧 (自作電圧計回路より)
  • 後部席の温度 (bme280より)
  • 後部席の湿度 (bme280より)
  • 気圧 (bme280より)
  • 標高 (GPS-M1ZZより)
  • ラジエータの水温 (Camp-Junction-Boxより 自作回路経由)

以上!

mz20mon-tinker その5

usb0周りをチューニング。

  • rndisなドライバーなため、デバイス認識の度にMACアドレスが変わってしまう。
  • udevで無理やりmacアドレスを変更することも可能だけど、あまり意味がなさそう。。結局は認識直後はランダムなMACアドレスになるので。。
  • というわけで、IPを手動で固定割り当てに変更。
  • 通常時のLTE⇔Wifi切り替え時は、usbパワーオフはせず、ifdownのみで行うことに。
    • LTE運用中の夜中のRefresh処理時は、usbパワーoff/onする!
  • それに伴い、scriptの整備!

あと、禁断の。。。(w

diff --git a/drivers/usb/dwc2/hcd_intr.c b/drivers/usb/dwc2/hcd_intr.c
index bda0b21b850f..ae006c0cd705 100644
--- a/drivers/usb/dwc2/hcd_intr.c
+++ b/drivers/usb/dwc2/hcd_intr.c
@@ -461,7 +461,7 @@ static int dwc2_update_urb_state(struct dwc2_hsotg *hsotg,
                                                      &short_read);

        if (urb->actual_length + xfer_length > urb->length) {
-               dev_warn(hsotg->dev, "%s(): trimming xfer length\n", __func__);
+               // dev_warn(hsotg->dev, "%s(): trimming xfer length\n", __func__);
                xfer_length = urb->length - urb->actual_length;
        }

@@ -1165,7 +1165,7 @@ static void dwc2_update_urb_state_abn(struct dwc2_hsotg *hsotg,
        u32 hctsiz;

        if (urb->actual_length + xfer_length > urb->length) {
-               dev_warn(hsotg->dev, "%s(): trimming xfer length\n", __func__);
+               // dev_warn(hsotg->dev, "%s(): trimming xfer length\n", __func__);
                xfer_length = urb->length - urb->actual_length;
        }

@@ -1897,6 +1897,7 @@ static void dwc2_hc_chhltd_intr_dma(struct dwc2_hsotg *hsotg,
                                dwc2_halt_channel(hsotg, chan, qtd,
                                        DWC2_HC_XFER_PERIODIC_INCOMPLETE);
                        } else {
+                               #if 0
                                dev_err(hsotg->dev,
                                        "%s: Channel %d - ChHltd set, but reason is unknown\n",
                                        __func__, chnum);
@@ -1904,6 +1905,7 @@ static void dwc2_hc_chhltd_intr_dma(struct dwc2_hsotg *hsotg,
                                        "hcint 0x%08x, intsts 0x%08x\n",
                                        chan->hcint,
                                        dwc2_readl(hsotg->regs + GINTSTS));
+                               #endif
                                goto error;
                        }
                }

続く~

車内LAN用スイッチングハブ電源回路改善

車内LAN用のスイッチングハブは、5Vアダプタな電源仕様なやつですが、車載PCのUSBポートから直接電源にぶち込んでました。

が、しかし、たまーに、正常に起動せず(ループ検知ループしたり、ポートリンクアップしなかったり)してたので、おそらく、USBバスパワーの容量不足だったのかなとw

というわけで、ちゃんと、DC/DCコンバータ&リレー経由で、電源を作成することに。

まずは、回路!

まぁ、単なる1C接点リレー経由にしただけ。

DC/DCコンバータは、これ↓

ケースとリレーとか買いに、秋葉へ!

スイッチも、5ポートなやつを新調!↓

リレーは、これ↓

まずは、工作!

できたので、テスト!

問題なさそう!

というわけで、車載!

うまくいきました。

もとの8ポートなコは引退~

部屋で使います(w

 

mz20mon-tinker その4 (kernelビルド!)

USB-LTEモデムをFujisoftのやつに変えたら、dwc2のエラー出まくりが、ひどくなったので、kernelをビルドすることに。

調査した結果、そもそもbugっぽいので、バックポートパッチを。

# diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c
index 71b7592354cb..4a709204b79d 100644
--- a/drivers/usb/dwc2/hcd.c
+++ b/drivers/usb/dwc2/hcd.c
@@ -315,6 +315,9 @@ static void dwc2_gusbcfg_init(struct dwc2_hsotg *hsotg)
        usbcfg = dwc2_readl(hsotg->regs + GUSBCFG);
        usbcfg &= ~(GUSBCFG_HNPCAP | GUSBCFG_SRPCAP);
 
+       /* Set HS/FS Timeout Calibration */
+       usbcfg |= GUSBCFG_TOUTCAL(7);
+
        switch (hsotg->hw_params.op_mode) {
        case GHWCFG2_OP_MODE_HNP_SRP_CAPABLE:
                if (hsotg->core_params->otg_cap ==
@@ -2045,12 +2048,16 @@ static int dwc2_hcd_endpoint_reset(struct dwc2_hsotg *hsotg,
  */
 int dwc2_core_init(struct dwc2_hsotg *hsotg, bool select_phy, int irq)
 {
-       u32 usbcfg, otgctl;
+       u32 usbcfg, otgctl, trdtrim;
        int retval;
 
        dev_dbg(hsotg->dev, "%s(%p)\n", __func__, hsotg);
 
        usbcfg = dwc2_readl(hsotg->regs + GUSBCFG);
+       usbcfg &= ~GUSBCFG_USBTRDTIM_MASK;
+       trdtrim = (hsotg->phyif == GUSBCFG_PHYIF8) ? 9 : 5;
+       usbcfg |= (trdtrim << GUSBCFG_USBTRDTIM_SHIFT); + dwc2_writel(usbcfg, hsotg->regs + GUSBCFG);
 
        /* Set ULPI External VBUS bit if needed */
        usbcfg &= ~GUSBCFG_ULPI_EXT_VBUS_DRV;

ビルドするよ!

    • gcc-patch
      diff --git a/drivers/media/i2c/soc_camera/rockchip/Makefile b/drivers/media/i2c/soc_camera/rockchip/Makefile
      index 7933bcd1..2486999a 100755
      --- a/drivers/media/i2c/soc_camera/rockchip/Makefile
      +++ b/drivers/media/i2c/soc_camera/rockchip/Makefile
      @@ -1,2 +1,3 @@
       obj-\$(CONFIG_VIDEO_OV8858) += ov_camera_module.o rk_camera_module.o ov8858_v4l2-i2c-subdev.o
       obj-\$(CONFIG_VIDEO_IMX219) += imx_camera_module.o rk_camera_module.o imx219_v4l2-i2c-subdev.o
      +ccflags-y += -Wno-misleading-indentation # GCC6
      diff --git a/drivers/net/wireless/rockchip_wlan/rtl8723bs/Makefile b/drivers/net/wireless/rockchip_wlan/rtl8723bs/Makefile
      index 40715655..bd33c700 100644
      --- a/drivers/net/wireless/rockchip_wlan/rtl8723bs/Makefile
      +++ b/drivers/net/wireless/rockchip_wlan/rtl8723bs/Makefile
      @@ -16,6 +16,7 @@ EXTRA_CFLAGS += -Wno-unused
       #EXTRA_CFLAGS += -Wno-uninitialized
       #EXTRA_CFLAGS += -Wno-error=date-time  # Fix compile error on gcc 4.9 and later
      
      +EXTRA_CFLAGS += -Wno-misleading-indentation # GCC6
       EXTRA_CFLAGS += -I\$(src)/include
       EXTRA_CFLAGS += -I\$(src)/hal/phydm

      patch -p1 < hoge.diff

  • Makefile修正
    VERSION = 4
    PATCHLEVEL = 4
    SUBLEVEL = 132
    EXTRAVERSION = -mz20mon-tinker
    NAME = Blurry Fish Butt
    
    ...
    ...
    ...
  • config
    # make ARCH=arm miniarm-rk3288_defconfig
  • zImage
    # time make ARCH=arm -j6 zImage 2>&1 | tee 1.log
  • modules
    # time make ARCH=arm -j6 modules 2>&1 | tee 2.log
  • dtbs
    # time make ARCH=arm dtbs 2>&1 | tee 3.log
  • Install
    # make ARCH=arm modules_install
    # mv -v /boot/zImage{,.bak}
    # mv -v /boot/rk3288-miniarm.dtb{,.bak}
    # cp -v arch/arm/boot/{zImage,dts/rk3288-miniarm.dtb} /boot

こんな感じ〜

dwc2のエラーは激減したね。

つづく〜

mz20mon-tinker その3

mz20mon-tinker、メンテ続きます。。。

dwc2のエラー出まくりが気持ち悪いので、USB-HUBをケースの中に内蔵し、USB-LTE-ModemとUSB-WiFiの両方をUSB-HUB経由の接続に変えました。

[root@mz20mon-tinker tmp]# lsusb -t
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Audio, Driver=snd-usb-audio, 480M
    |__ Port 1: Dev 2, If 1, Class=Audio, Driver=snd-usb-audio, 480M
    |__ Port 1: Dev 2, If 2, Class=Audio, Driver=snd-usb-audio, 480M
    |__ Port 1: Dev 2, If 3, Class=Audio, Driver=snd-usb-audio, 480M
    |__ Port 1: Dev 2, If 4, Class=Audio, Driver=snd-usb-audio, 480M
    |__ Port 1: Dev 2, If 5, Class=Audio, Driver=snd-usb-audio, 480M
    |__ Port 1: Dev 2, If 255, Class=Human Interface Device, Driver=usbhid, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=dwc2/1p, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc2/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 3: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 480M
        |__ Port 4: Dev 4, If 0, Class=Hub, Driver=hub/4p, 480M
            |__ Port 3: Dev 8, If 0, Class=Communications, Driver=cdc_ether, 480M
            |__ Port 3: Dev 8, If 1, Class=CDC Data, Driver=cdc_ether, 480M
            |__ Port 4: Dev 5, If 0, Class=Vendor Specific Class, Driver=rtl8812au, 480M

こんな感じ!
Bus 01.Port 1(Root-Hub) → Port 4(USB-HUB) → Port3:LTE-Modem, Port4:WiFi

これで、少し、静かになったかなと。

続く。

mz20mon-tinker その2

mz20monのメンテ続きます。

ASUS Tinker Board Sベースへ

  • Hostname: mz20mon-tinker
  • OS: Fedora 27ベース (kernel-4.4.103+)
  • USBデバイス
    • USB-SATA-IF: 128GB-SSD
    • USB-LTE-Modem: PIX-MT100
    • USB-HUB
    • USB-WiFi: BUFFALO WI-U2-433DMS  (RTL88xx)

      白いのがUSB-HUB、それに刺さってる黒いのがWI-U2-433DMS
  • オンボードUART
    • UART3(/dev/ttyS3): gpsレシーバ用
    • UART4(/dev/ttyS4): HKS CAMP Junction-BOX用
  • I2C
    • 0x40: INA226 mz20monシステム電力測定用
    • 0x41: INA226 7M-GTEU オルタネーター電力測定用
    • 0x76: BME280 トランクルーム 温度・湿度・気圧測定用
  • GPIO
    • wiP28(PHY38): USB-LTE-Modem Power OFF
    • wiP29(PHY40): USB-LTE-Modem Power ON
    • wiP06(PHY22): ソーラーチャージコントローラー Power OFF
    • wiP24(PHY35): ソーラーチャージコントローラー Power ON
    • wiP01(PHY12): オフ会モード入力
    • wiP23(PHY33): ファンコントローラー用(PWM2)
    • wiP08(PHY03): I2C-SDA
    • wiP09(PHY05): I2C-SCL
    • wiP27(PHY36): UART3-RX
    • wiP25(PHY37): UART3-TX
    • wiP02(PHY13): UART4-TX
    • wiP03(PHY15): UART4-RX
  • ネットワーク
    • eth0: NaO10 mz20 車内LAN
      • 192.168.3.246 / 24
    • tun0: Garent-VPN
      • 192.168.70.13
    • wlan0: 未使用(オンボードwifi)
    • wlan1: ガレージWiFi接続用
      • 192.168.129.102 / 24
    • usb0: OCNモバイルONEネットワーク接続用
      • 192.168.128.10 / 24

ネットワークについて

  • 現在位置を、gpsより取得し、自宅 or それ以外を判定する。
  • WAN接続の決定
    • 自宅(GPSの距離が20m以内)であれば、WAN接続を、WiFi経由とする
    • 自宅以外であれば、WAN接続を、LTEモデム(OCNモバイルONE)経由とする
  • VPN接続の確立
    • GarentへVPN接続する
  • namedのリフレッシュ
  • ntpdのリフレッシュ