Hi all,

This post reports on the Teensy++ 2.0 example Joystick/Complete not working on some machines.

We have the guts of an analog joystick (with switches) wired to the Teensy, running the example code.

When plugged into several different Windows desktops or laptops (mostly Win 7 pro), this works fine, for example as seen in joy.cpl, or using Joystick Tester (http://www.mcrenox.com.ar/downloads/).

However, when plugged into a particular laptop ("The Problem Machine", Lenovo Z575 Win 7 Home), although the Teensy appears in joy.cpl, the Properties window is blank (no graph of X-Y, slides or switches).

Another user also reported this kind of problem: http://forum.pjrc.com/threads/1319-t...topped-working

Joystick Tester on the Problem Machine is similarly without data. Notably, the panel which shows data from the HID Report shows Max axes 6, Number of axes 0, Max buttons 32, Number of buttons 32.

I.e., Windows sees the joystick device, can read its device info, but mysteriously the number of data items actually available is zero.

This is the behavior when the Teensy code is compiled with the Arduino "USB Type" set to "Keyboard + Mouse + Joystick".

If instead we switch USB Type to "Serial + Keyboard + Mouse + Joystick", then the joystick works fine on The Problem Machine.

So is seems that there is something in the config_descriptor or joystick_hid_report_desc, when it's compiled with "K+M+J", that causes The Problem Machine to think there are no data items for the Joystick.

Bear in mind, again, that "K+M+J" works fine when Teensy is plugged into the six different other machines that we tried.

We also tried deleting all the serial code from example Complete (and also the examples that don't use serial), and these moves didn't result in proper behavior on The Problem Machine.

So, we have the workaround of using SUB Type = S+K+M+J, but it's worrisome that just K+M+J didn't work.

Other info:
These results (K+M+J bad, S+K+M+J good) were obtained after installing Arduino 1.0.4, Teensyduino 1.13 and teensy serial driver onto The Problem Machine. The non-working condition was encountered prior to installing Arduino etc. What we don't know is whether S+K+M+L would have worked with Arduino etc not installed (and/or whether that would prompt Windows to look for a serial driver -- doh!).


-- Graham