Turns out they are a lot different than other PS3 controllers.
When plugged into USB, it appears like these units do not send
any reports. They do allow us to do pairing (which is differnt)
than other PS3, as well as set the Bulb LED color, which I now
have it alternating colors every few seconds and also it tries
to pair it with a BT dongle
When connected to Bluetooth, it now is setup to generate reports,
as well as again set the bulb color and rumble.
So far it maps the 3 button bytes into the buttons field and then
simply copies most all of the data down into Axis, starting where
the Trigger button is.
JoystickBT.ino was updated, to know about this controller and as
mentioned above in the USB case it tries to pair and plays with the
color of bulb.
In the BT case it tries to display data. I did a quick and dirty
change of the Accel/Gyro like stuff which is probably totally wrong.
Pressing some of the buttons will set bulb color and pressing trigger
will set rumble.
PS3 Motion controller - very little mapping of axis
Did some quick edits, to try this out on my T4. beta
Decided maybe needed top header to mention this currently requires SPIN, ILI9341_t3n libraries, Also thought I would mention which pins, which I made different for T3.6 versis T4.
Also removed the ili9341_due_config.h file as nothing in it was used.
And added a message to the screen saying it was waiting for Joystick object.
Fixed the order of bytes output when we show a bluetooth address.
Also moved the updated JoystickBT example up one level, such that the new version overwrote the previous version...
Did quick test with PS3...
Trying out using the extended Inquiry data search instead of the real simple one. This allows us to hopefully get the name of the device as part of this, which now allows the PS4 to know it is a PS4 on the Pair type constructor.
Still WIP to understand XBox one...
Support to pair PS3 if it knows the BTADDR and user presses select and PS button and plugged in USB.
Remembers remote name, and tries to get it when PAIR version of code is running. (Currently fails).
Does some mapping of PS3 Bluetooth data to match USB HID data.
Warning: as part of debuggigng why joystickType value was changing, I changed the class to make it a function you call instead of just a member variable. Should mark it inline... I think I caught all of the places in example code that was accessing it. If we find we want ability for user probram to update it, should add another member to explicityly set it.
I have some PS3 support working... Hope I did not break PS4.... ;)
Also This assumes that you did a bind of the dongle to PS3 external, no support yet, I did this on RPI3...
Rumble needs work!
Hopefully did not break other things...
Find that the PS4 requires you to ask to connect versus some/most other devices will do the request...
Also found issue without printing, where adding a delay(1) in a couple of places appears to help when Serial1 printing is not on