chiark / gitweb /
hostside, notes: new notes directory; move neo-s info into it; remove obsolete files...
[trains.git] / notes / neo-s-gamepad / neo-s.README
1 used DirectX 9 SDK
2      DXSDK_Jun10.exe
3      From Microsoft
4      Saved a copy in anarres:~ian/public-html
5
6      The program "ffconst" can be used to send DX force feedback
7      commands, which the gamepad drivers apparently recognised and
8      converted to requests to spin one or both rumble motors
9
10 Alternative would be to try program "fedit" from DirectX 8.1 SDK
11       but was only able to find what looks like a dodgy copy
12       anarres:~ian/public-html/dx81sdk_full.exe
13
14 Obv. had to install Neo S drivers from the supplied mini cd
15
16 Used "usb snoop" 1.8 from
17    http://benoit.papillault.free.fr/usbsnoop/doc.php.en
18    which worked very nicely
19
20 The "2.0" version at
21    http://www.pcausa.com/Utilities/UsbSnoop/
22    sounded like someone pointlessly messing with it so I ignored it
23
24 Runes for examining logs from usbsnoop program:
25    less -j40 +/USBD_TRANSFER_DIRECTION_OUT usbsnoop.log 
26    perl -pe 's/\n$/\t\t/ unless m/UsbSnoop - MyDispatch/' <usbsnoop.log |grep TRANSFER_DIRECTION_OUT |less -S
27
28 Runes for testing on liberator:
29    perl -e 'print pack "c*", map { hex $_ } @ARGV' 4d 4d 46 00 c0 00 00 00 00 >/dev/hidraw0 
30
31
32
33
34
35
36 Conclusions
37    Neo S firmware is batshit
38
39    Note how you have to send the usb report number byte again as the
40    first byte of the report.  Dunno what the random 46 is.
41
42    Anyway, you write into /dev/hidraw* the following byte sequence:
43      4d 4d 46 RR LL 00 00 00 00
44    where RR is for the heavy weight motor on the RHS
45    where LL is for the lighter weight motor on the LHS
46
47    LL 
48    Sensibe range 0c..60
49    Lower values risk a stall even when running
50    Higher values make no difference
51    To start from stopped need 18
52
53    RR 
54    Sensible range 20..60
55    Lower values risk a stall even when running
56    Higher values make no difference
57    To start from stopped need at least 30