No edit summary |
No edit summary |
||
(25 intermediate revisions by 2 users not shown) | |||
Line 5: | Line 5: | ||
|Niche=Video artsy stuff | |Niche=Video artsy stuff | ||
|Purpose=Fun | |Purpose=Fun | ||
|Picture= | |Picture=LGR100-outputtingfromlaptop.JPG | ||
|Tool=No | |Tool=No | ||
}} | }} | ||
== What == | == What == | ||
The LG R100 '360 VR' headset is a failed add-on for the LG G5 phone , | 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 | 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 34: | Line 34: | ||
== What if my pc has no USB-C AltMode DP == | == 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 ;) | 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 ;) | ||
Line 44: | Line 53: | ||
* Sunix UPD2018 | * Sunix UPD2018 | ||
* Asus ThunderboltEX 3 | * Asus ThunderboltEX 3 | ||
* https://www.asrock.com/mb/spec/product.asp?Model=Thunderbolt%203%20AIC | |||
* https://eu-store.wacom.com/Product/wacom-link-plus (Brandano of #reprap tried this but thusfar couldnt get it working) | |||
== 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. | |||
* https://forum.xda-developers.com/showpost.php?p=76256523&postcount=30 | |||
<gallery>LGR100-modded-with-DFU-button.png</gallery> | |||
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! | |||
# Boot the VR headset in DFU mode (with the button added as described above) | |||
# Get the LG firmware 10d update from the '360 vr manager' android app ( [http://space.nurdspace.nl/~buzz/lg-r100/LGR100AT-00-V10d-310-XX-MAY-02-2016+0.dfu 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 === | |||
* [https://www.96boards.org/product/rock960/ 96Boards Rock960] | |||
* [https://tinker-board.asus.com/product/tinker-board-2s.html Asus Tinkerboard 2S] | |||
* [https://en.t-firefly.com/product/rocrk3399pc Firefly ROC-RK3399-PC-Plus and ROC-RK3399-PC] | |||
* [http://wiki.friendlyarm.com/wiki/index.php/NanoPC-T4 FriendlyArm NanoPC-T4] | |||
* [http://wiki.friendlyarm.com/wiki/index.php/SOM-RK3399 FriendlyArm SOM-RK3399] | |||
* [https://www.khadas.com/edge1 Khadas Edge] for instance on [https://www.khadas.com/captain Captain] | |||
* [https://www.khadas.com/edge-v Khadas Edge-V] | |||
* [http://linuxgizmos.com/orange-pi-4-launches-at-60-with-4gb-ram/ Orange Pi 4] | |||
* [https://www.pine64.org/rockpro64/ Pine64 ROCKPro64] | |||
* [https://www.cnx-software.com/2017/11/20/rockchip-rk3399-sapphire-board-is-sold-for-75-promo/ Rockchip Sapphire] | |||
=== 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] | |||
== | == Other hardware with USB-C AltMode DP == | ||
* Dell Latitude 3590 (The_Niz is using one) | |||
* | * Orange Pi 5 | ||
* | |||
== Weblinks == | == Weblinks == | ||
Line 57: | Line 187: | ||
* 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 | ||
* https://github.com/bauermaximilian/LG-360-VR-for-PC | |||
== 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 |
Latest revision as of 13:28, 8 October 2023
LG R100 info collection | |
---|---|
Participants | User:buzz, Dennis |
Skills | Experimentation |
Status | Active |
Niche | Video artsy stuff |
Purpose | Fun |
Tool | No |
Location | |
Cost | |
Tool category |
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 ;)
- [1] https://hardforum.com/threads/use-usb-c-monitor-without-usb-c.1911817/
- [2] https://www.gigabyte.com/Motherboard/GC-TITAN-RIDGE-rev-10
Some other cards that probably can fit this purpose;
- Sunix UPD2018
- Asus ThunderboltEX 3
- https://www.asrock.com/mb/spec/product.asp?Model=Thunderbolt%203%20AIC
- https://eu-store.wacom.com/Product/wacom-link-plus (Brandano of #reprap tried this but thusfar couldnt get it working)
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!
- Boot the VR headset in DFU mode (with the button added as described above)
- 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
- 96Boards Rock960
- Asus Tinkerboard 2S
- Firefly ROC-RK3399-PC-Plus and ROC-RK3399-PC
- FriendlyArm NanoPC-T4
- FriendlyArm SOM-RK3399
- Khadas Edge for instance on Captain
- Khadas Edge-V
- Orange Pi 4
- Pine64 ROCKPro64
- Rockchip Sapphire
Smartphones
Laptop
Tablet
Other hardware with USB-C AltMode DP
- Dell Latitude 3590 (The_Niz is using one)
- Orange Pi 5
Weblinks
- http://www.openhmd.net/
- https://github.com/ChristophHaag/SteamVR-OpenHMD
- https://www.youtube.com/watch?v=_9Jqm6uyFHQ
- 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/bauermaximilian/LG-360-VR-for-PC
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