LG R100 info collection: Difference between revisions

From NURDspace
No edit summary
(14 intermediate revisions by 2 users not shown)
Line 8: Line 8:
|Tool=No
|Tool=No
}}
}}
__NOTOC__
 
== What ==
== What ==


The LG R100 '360 VR' headset is a failed add-on for the LG G5 phone , ment for viewing 360 videos on the go.
The LG R100 '360 VR' headset is a failed add-on for the LG G5 phone, meant for viewing 360 videos on the go.


Originally priced at 200 usd, these can now be found for ~20 euro on ebay while stocks last :)
Originally priced at 200 usd, these could be found for ~20 euro on ebay, but atm they seem to get more expensive again.


== Why do i care ==
== Why do i care ==
Line 111: Line 111:
  dfu-util 0.9
  dfu-util 0.9
   
   
  Found DFU: [0483:df11] ver=2200, devnum=28, cfg=1, intf=0, path="1-1.4.3", alt=3, name="@Device Feature/0xFFFF0000/01*004 e", serial="378A37803235"
  Found DFU: [0483:df11] ver=2200, devnum=28, cfg=1, intf=0, path="1-1.4.3", \
  Found DFU: [0483:df11] ver=2200, devnum=28, cfg=1, intf=0, path="1-1.4.3", alt=2, name="@OTP Memory /0x1FFF7800/01*512 e,01*016 e", serial="378A37803235"
alt=3, name="@Device Feature/0xFFFF0000/01*004 e", serial="378A37803235"
  Found DFU: [0483:df11] ver=2200, devnum=28, cfg=1, intf=0, path="1-1.4.3", alt=1, name="@Option Bytes  /0x1FFFC000/01*016 e", serial="378A37803235"
  Found DFU: [0483:df11] ver=2200, devnum=28, cfg=1, intf=0, path="1-1.4.3", alt=0, name="@Internal Flash  /0x08000000/04*016Kg,01*064Kg,03*128Kg", serial="378A37803235"
  Found DFU: [0483:df11] ver=2200, devnum=28, cfg=1, intf=0, path="1-1.4.3", \
alt=2, name="@OTP Memory /0x1FFF7800/01*512 e,01*016 e", serial="378A37803235"
  Found DFU: [0483:df11] ver=2200, devnum=28, cfg=1, intf=0, path="1-1.4.3", \
alt=1, name="@Option Bytes  /0x1FFFC000/01*016 e", serial="378A37803235"
  Found DFU: [0483:df11] ver=2200, devnum=28, cfg=1, intf=0, path="1-1.4.3", \
alt=0, name="@Internal Flash  /0x08000000/04*016Kg,01*064Kg,03*128Kg", serial="378A37803235"




Line 139: Line 146:
  pGpGLGR100AT-00-V10a-310-XX-MAR-11-2016+0
  pGpGLGR100AT-00-V10a-310-XX-MAR-11-2016+0


 
== SBC ==
Updating the firmware (once you add the DFU button) is very easy!
There also seem to be some Single Board Computers that support DP on USB-C.
 
* [https://www.friendlyarm.com/index.php?route=product/product&product_id=225 NanoPC-T4]
# Boot the VR headset in DFU mode (with the button added as described above)
* [https://www.pine64.org/?product=rockpro64-2gb-single-board-computer Pine64 ROCKPro64]
# Get the LG firmware 10d update from the '360 vr manager' android app    ( LGR100AT-00-V10d-310-XX-MAY-02-2016+0.dfu  , md5sum 7edca9d31a8227790169db4c4b653d6a )
# dfu-util -a 0 -D ~/Downloads/LGR100AT-00-V10d-310-XX-MAY-02-2016+0.dfu
# Done! Powercycle the headset , and confirm with cat /dev/hidraw0 that its running the 10d firmware now.
 
== Rockchip RK3399 based hardware with USB-C AltMode DP ==
=== SBC ===
* [http://wiki.friendlyarm.com/wiki/index.php/NanoPC-T4 NanoPC-T4]
* [http://linuxgizmos.com/orange-pi-4-launches-at-60-with-4gb-ram/ Orange Pi 4]
* [https://www.96boards.org/product/rock960/ Rock960]
* [https://www.pine64.org/rockpro64/ Pine64 ROCKPro64]
* [http://wiki.friendlyarm.com/wiki/index.php/SOM-RK3399 SOM-RK3399]
 
=== Smartphones ===
* [https://wiki.pine64.org/index.php/PinePhone PinePhone]
 
=== Laptop ===
* [https://www.pine64.org/pinebook-pro/ PineBook Pro]
 
=== Tablet ===
* [https://www.acer.com/ac/en/MY/content/model/NX.H0BSM.001 Acer Chromebook Tab 10]


== Weblinks ==  
== Weblinks ==  
Line 152: Line 178:
* https://forum.xda-developers.com/lg-g5/accessories/lg-360-vr-openhmd-journey-linux-mac-t3810873
* https://forum.xda-developers.com/lg-g5/accessories/lg-360-vr-openhmd-journey-linux-mac-t3810873
* https://github.com/OpenHMD/OpenHMD/tree/LG-R100
* https://github.com/OpenHMD/OpenHMD/tree/LG-R100
== Converting a video for using the LG R100 as 3D monitor ==
This can turn normal 'half side by side' videos into LG R100 prerotated files.
<gallery>
OriginalSBS.jpg|Original SBS movie
Lgr100SBS.jpg|Rotated LG-R100 movie
</gallery>
#!/bin/sh
# this is for a 1920x1080 'Half Side by Side' SBSL 3D input
ffmpeg -i rollercoaster.mp4 -filter:v "crop=960:1080:0:0,transpose=1" -s 960x1080 -codec:v h264_nvenc -f matroska -y left.mkv
ffmpeg -i rollercoaster.mp4 -filter:v "crop=960:1080:960:0,transpose=2" -s 960x1080 -codec:v h264_nvenc -f matroska -y right.mkv
ffmpeg -i left.mkv -i right.mkv -filter_complex hstack -codec:v h264_nvenc rollercoaster-LGR100.mp4
rm left.mkv
rm right.mkv
Playback usually needs this :
mplayer -monitorpixelaspect 1.5 rollercoaster-LGR100.mp4

Revision as of 12:29, 2 March 2021

LG R100 info collection
LGR100-outputtingfromlaptop.JPG
Participants User:buzz, Dennis
Skills Experimentation
Status Active
Niche Video artsy stuff
Purpose Fun
Tool No
Location
Cost
Tool category

LG R100 info collection

LGR100-outputtingfromlaptop.JPG {{#if:No | [[Tool Owner::{{{ProjectParticipants}}} | }} {{#if:No | [[Tool Cost::{{{Cost}}} | }}


What

The LG R100 '360 VR' headset is a failed add-on for the LG G5 phone, meant for viewing 360 videos on the go.

Originally priced at 200 usd, these could be found for ~20 euro on ebay, but atm they seem to get more expensive again.

Why do i care

OpenHMD has gotten (for now basic) support for these goggles recently, making them usable on any computer with USB-C AltMode DP video output. Such support could also be added to some computers. OpenHMD is a library for linux and windows that can be used in other programs to gain VR support. A notable application that uses it is a plugin for SteamVR to use it with steam games ;)

Woa nice, what are the specs

  • 960x720 pixels per eye on a seperate IPS LCD ( i think ~600ppi )
  • -2- hardware buttons
  • 6axis IMU data (gyro and accel) , some sources suggest a compass is present aswell
  • a 3.5mm jack for headphones (currently unsupported through openhmd)
  • adjustable diopter and pupilar distances (within some limits)
  • fits over glasses (but not too well, maybe we can adjust the removable lightshield for it)
  • single USB-C plug for power, video (through USB-C AltMode DP) , button, audio and IMU data

Where can i find it

Search on ebay for 'LG R100' or 'LG 360 VR'

What if my pc has no USB-C AltMode DP

UPDATE 2019/05/01

strfry on #openhmd on freenode is selling these adapters ; http://strfry.org/projects/LG360VR.html
alpine ridge card did not work

UPDATE 2019/05/01


Reading the hardforum thread [1] i noticed the Alpine and Titan Ridge cards [2] used successfully for similar goals. Dutch webshops seem to be getting it in stock nowadays for ~75 euro. Nobody tried it yet, but outlook is good ;)

Some other cards that probably can fit this purpose;

What if my DP ports are all occupied

DP 1.2 added a feature that allows multiple devices to be connected to a single upstream port through either daisy chaining, or added hubs. For using such hub, only the upstream device needs to support DP 1.2, any hub connecting devices can be DP 1.0. For daisy chaining, each device beside the last needs DP 1.2 capabilities.

feitingen on #openhmd confirmed that the LG R100 works for him through a thunderbolt dock with a built-in dp-mst hub.

These kind of hubs start around 30 euro on ebay, atm.

Firmware on the STM32?

I modified my glasses with a extra button , connecting the 'B' and '+5V' testpins on the motherboard when i press it, so i can get a deeper DFU boot enabled. This method was described on xda-developers.

The tools dfu-tool and dfu-util seem very capable at reading information from the device;

root@h81m:/home/buzz/code/lg360vrmanager# dfu-tool list

(dfu-tool:6699): FuPluginDfu-WARNING **: 01:37:37.579: DFU version 0x0000 invalid, v1.1 assumed
Found 0483:df11 [v22.0]:
 Protocol:      DfuSe
 Name:          STM32  BOOTLOADER
 Serial:        378A37803235
 Mode:          DFU
 Status:        OK
 State:         dfuIDLE
 Transfer Size: 2.0 kB (2,048 bytes)
 Attributes:    can-download|can-upload|will-detach
 ID:            0
  Name:         Internal Flash
  Region 0x00:  Zone:0, Sec#:0, Addr:0x08000000, Size:0x4000, Caps:0x7 [REW]
  Region 0x01:  Zone:0, Sec#:0, Addr:0x08004000, Size:0x4000, Caps:0x7 [REW]
  Region 0x02:  Zone:0, Sec#:0, Addr:0x08008000, Size:0x4000, Caps:0x7 [REW]
  Region 0x03:  Zone:0, Sec#:0, Addr:0x0800c000, Size:0x4000, Caps:0x7 [REW]
  Region 0x04:  Zone:0, Sec#:1, Addr:0x08010000, Size:0x10000, Caps:0x7 [REW]
  Region 0x05:  Zone:0, Sec#:2, Addr:0x08020000, Size:0x20000, Caps:0x7 [REW]
  Region 0x06:  Zone:0, Sec#:2, Addr:0x08040000, Size:0x20000, Caps:0x7 [REW]
  Region 0x07:  Zone:0, Sec#:2, Addr:0x08060000, Size:0x20000, Caps:0x7 [REW]
 ID:            1
  Name:         Option Bytes
  Region 0x00:  Zone:0, Sec#:0, Addr:0x1fffc000, Size:0x0010, Caps:0x3 [RW]
 ID:            2
  Name:         OTP Memory
  Region 0x00:  Zone:0, Sec#:0, Addr:0x1fff7800, Size:0x0200, Caps:0x3 [RW]
  Region 0x01:  Zone:0, Sec#:1, Addr:0x1fff7a00, Size:0x0010, Caps:0x3 [RW]
 ID:            3
  Name:         Device Feature
  Region 0x00:  Zone:0, Sec#:0, Addr:0xffff0000, Size:0x0004, Caps:0x3 [RW]


root@h81m:/home/buzz/code/lg360vrmanager# dfu-util -l
dfu-util 0.9

Found DFU: [0483:df11] ver=2200, devnum=28, cfg=1, intf=0, path="1-1.4.3", \
alt=3, name="@Device Feature/0xFFFF0000/01*004 e", serial="378A37803235"

Found DFU: [0483:df11] ver=2200, devnum=28, cfg=1, intf=0, path="1-1.4.3", \
alt=2, name="@OTP Memory /0x1FFF7800/01*512 e,01*016 e", serial="378A37803235"

Found DFU: [0483:df11] ver=2200, devnum=28, cfg=1, intf=0, path="1-1.4.3", \
alt=1, name="@Option Bytes  /0x1FFFC000/01*016 e", serial="378A37803235"

Found DFU: [0483:df11] ver=2200, devnum=28, cfg=1, intf=0, path="1-1.4.3", \
alt=0, name="@Internal Flash  /0x08000000/04*016Kg,01*064Kg,03*128Kg", serial="378A37803235"


With dfu-util i was able to dump a 512kb file of the 'Internal Flash' part of the device :

# dfu-util -a 0 -s 0x08000000:524288 -U dfuutilpoging1.dfu
dfu-util 0.9

Opening DFU capable USB device...
ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 2048
DfuSe interface name: "Internal Flash  "
Upload  [=========================] 100%       524288 bytes
Upload done.
root@h81m:/home/buzz/code/lg360vrmanager# md5sum dfuutilpoging1.dfu
fc2c95b203af5905374551a0b8479839  dfuutilpoging1.dfu
root@h81m:/home/buzz/code/lg360vrmanager# strings dfuutilpoging1.dfu | grep LG | grep 2016
pGpGLGR100AT-00-V10a-310-XX-MAR-11-2016+0


Updating the firmware (once you add the DFU button) is very easy!

  1. Boot the VR headset in DFU mode (with the button added as described above)
  2. Get the LG firmware 10d update from the '360 vr manager' android app ( LGR100AT-00-V10d-310-XX-MAY-02-2016+0.dfu , md5sum 7edca9d31a8227790169db4c4b653d6a )
  3. dfu-util -a 0 -D ~/Downloads/LGR100AT-00-V10d-310-XX-MAY-02-2016+0.dfu
  4. Done! Powercycle the headset , and confirm with cat /dev/hidraw0 that its running the 10d firmware now.

Rockchip RK3399 based hardware with USB-C AltMode DP

SBC

Smartphones

Laptop

Tablet

Weblinks

Converting a video for using the LG R100 as 3D monitor

This can turn normal 'half side by side' videos into LG R100 prerotated files.

#!/bin/sh

# this is for a 1920x1080 'Half Side by Side' SBSL 3D input

ffmpeg -i rollercoaster.mp4 -filter:v "crop=960:1080:0:0,transpose=1" -s 960x1080 -codec:v h264_nvenc -f matroska -y left.mkv
ffmpeg -i rollercoaster.mp4 -filter:v "crop=960:1080:960:0,transpose=2" -s 960x1080 -codec:v h264_nvenc -f matroska -y right.mkv
ffmpeg -i left.mkv -i right.mkv -filter_complex hstack -codec:v h264_nvenc rollercoaster-LGR100.mp4
rm left.mkv
rm right.mkv

Playback usually needs this :

mplayer -monitorpixelaspect 1.5 rollercoaster-LGR100.mp4