PSVRFramework
PSVRFramework copied to clipboard
Read device calibration
Looking through USB logs, this looks like it might be device calibration data.
My unit returns:
ep.write('\x81\x00\xaa\x08\x86\x00\x00\x00\x00\x00\x00\x00')
ep.write('\x81\x00\xaa\x08\x86\x01\x00\x00\x00\x00\x00\x00')
8600aa3c
fc000200000000000000000000000000
000083bff03ae47086bd8d65e0bc0000
0000c8707e3f4c52803fc931803f0000
0000451d623b7aaca8bb1fc4
8601aa3c
fc0085b90000000065a17e3f5fce7e3f
b2887f3f000000002eddcb3c7801883f
f2fd723c00000000b4ec80bf430bce3d
3bdf393c000000002a87e2bc
8602aa3c
fc004a7c6ebf5d8f2a3d000000000c72
803f76bef73c52b83b3d00000000c0ca
943c7fea9d3dd245833f000000007914
afbc32085c3d438b78bf0000
8603aa3c
fc000000b8c69bbe06014ac19b8d243e
00000000b4244a41eea895be266292bd
00000000b6932bbe1e3412beba6d49c1
00000000451d62bb7aaca83b
8604aa3c
fc001fc48539000000005555a3410000
a441ae07a04100000000000000000000
00000000000000000000000000000000
000000000000000000000000
[edit to reformat data blocks]
Mon Nov 14 20:30:10 2016, re-read to see if it changes over time.
8600aa3c
fc000200000000000000000000000000
000083bff03ae47086bd8d65e0bc0000
0000c8707e3f4c52803fc931803f0000
0000451d623b7aaca8bb1fc4
8601aa3c
fc0085b90000000065a17e3f5fce7e3f
b2887f3f000000002eddcb3c7801883f
f2fd723c00000000b4ec80bf430bce3d
3bdf393c000000002a87e2bc
8602aa3c
fc004a7c6ebf5d8f2a3d000000000c72
803f76bef73c52b83b3d00000000c0ca
943c7fea9d3dd245833f000000007914
afbc32085c3d438b78bf0000
8603aa3c
fc000000b8c69bbe06014ac19b8d243e
00000000b4244a41eea895be266292bd
00000000b6932bbe1e3412beba6d49c1
00000000451d62bb7aaca83b
8604aa3c
fc001fc48539000000005555a3410000
a441ae07a04100000000000000000000
00000000000000000000000000000000
000000000000000000000000
If you remove the headers and the two leading payload bytes (fc 00) and concatenate the remaining 58-byte payloads, a pattern emerges:
02000000 00000000 00000000 00000000
83bff03a e47086bd 8d65e0bc 00000000
c8707e3f 4c52803f c931803f 00000000
451d623b 7aaca8bb 1fc485b9 00000000
65a17e3f 5fce7e3f b2887f3f 00000000
2eddcb3c 7801883f f2fd723c 00000000
b4ec80bf 430bce3d 3bdf393c 00000000
2a87e2bc 4a7c6ebf 5d8f2a3d 00000000
0c72803f 76bef73c 52b83b3d 00000000
c0ca943c 7fea9d3d d245833f 00000000
7914afbc 32085c3d 438b78bf 00000000
b8c69bbe 06014ac1 9b8d243e 00000000
b4244a41 eea895be 266292bd 00000000
b6932bbe 1e3412be ba6d49c1 00000000
451d62bb 7aaca83b 1fc48539 00000000
5555a341 0000a441 ae07a041 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
0000
These are little endian floating point values:
0.001837 -0.065645 -0.027392
0.993908 1.002512 1.001519
0.003450 -0.005148 -0.000255
0.994650 0.995336 0.998180
0.024886 1.062545 0.014831
-1.007224 0.100607 0.011345
-0.027652 -0.931584 0.041641
1.003480 0.030242 0.045830
0.018163 0.077107 1.025568
-0.021372 0.053719 -0.970875
-0.304250 -12.625250 0.160696
12.633961 -0.292304 -0.071476
-0.167556 -0.142777 -12.589289
-0.003450 0.005148 0.000255
20.416666 20.500000 20.003750
What could these FP values be?
I don't know, maybe they contain correction factors for the accelerometer and gyroscope.
The fifth to tenth line look like they could be accelerometer measurements in all six orientations, in units of about 1g:
0.024886 1.062545 0.014831
-1.007224 0.100607 0.011345
-0.027652 -0.931584 0.041641
1.003480 0.030242 0.045830
0.018163 0.077107 1.025568
-0.021372 0.053719 -0.970875
And the following lines could be gyroscope measurements for 120 rpm rotation around three major axes in rad/s:
-0.304250 -12.625250 0.160696
12.633961 -0.292304 -0.071476
-0.167556 -0.142777 -12.589289