DS4Windows -- yet another DualShock 4 driver! (No longer under active development)
#41
(03-18-2014, 01:48 AM)Jays2Kings Wrote: I see, and like where you're getting at, however at the size of the icons, it's difficult to have the numbers inside of it, plus there's much less room to work with any shape use that's not a box. I'm doing it the Windows Style in hopes people could make the connection, but even then I'm not sure, even so below I posted the new set of DS4 icons I made.


Yeah that was exactly the problem, haha my bad.

So yeah trial number 3... or is it 4 haha, simpler DS4 icons and charing icons. It's so much more simple there's not much to say about it, though I did add a gif of what the charging animation would look like if it was implemented, the actual frame by frame and the rest is in the zip:
[Image: Charging.gif]

Really looking forward to taking a look at it tomorrow and maybe tweaking a bit myself with GIMP! So far so good, maybe I have a good idea for the color display, that builds on these icons, too!

BTW I charged my controller fully and discovered that what we thought is a battery charge percentage indicator is actually some kind of plain voltage reading. It drops off exponentially when draining from a full charge and goes all the way up to filling that 0x0f component of the byte it is in (bit 0x10 determined to be the indicator that it is actually charging, regardless of battery level.) I'll try to think up a good display conversion. Just scaling to account for the exponential voltage decay rather than trying to just turn the number into a percentage through multiplication by ten should be a decent way to go. The number is probably offset by something, though, it seems like. If the battery pack charges or drains at a peak 5V, I might suspect that the transistor logic on-board is all 3.3V so the voltmeter sensor is covering that 3.3V-5V spread. I'd have to take a controller apart and hook up a voltmeter to know for sure.

What this means now is that actually there are 16 distinct levels (or maybe just 15, because at 0 the controller is about to die anyway? I'll have to perform a run-down of the controller and check this behavior.) I guess I'll do that right now, get a drain rate test going.
Reply

Sponsored links

#42
Okay, I performed a battery run-down with a version of DS4Windows which outputs timestamped battery charge/voltage meter changes from the telemetry in every single packet (that is to say: these values are precise.) I'm going to continue updating this post as I gather some data with this controller. I'm going to upload this version momentarily so people can help gather data if they like. The 2014-03-18.0 release will also fix the small issue that you could no longer turn your light bar completely off for maximum battery life. Note that the output will go to the console, so you want to run the program like, "DS4Tool > battery-testing.txt" instead of just clicking on it.

Edit: I realize there is no time printed for the disconnection. I'll make sure to add a timestamp for that event, too, and then upload this build for you guys.
Edit2: 2014-03-18.1 is the newest build. It reports the full power subsystem octet, not just the bottom half interpreted as "charge."

Code:
Test 1, run-down, idle except with a 255,255,255 lightbar.

A4:15:66:7B:73:37 2014-03-18T07:11:11.6692337Z> charge = 5
A4:15:66:7B:73:37 2014-03-18T07:11:11.7843777Z> charge = 7
The thread 0x1cbc has exited with code 0 (0x0).
A4:15:66:7B:73:37 2014-03-18T07:12:31.1984928Z> charge = 6
A4:15:66:7B:73:37 2014-03-18T07:24:01.7373420Z> charge = 5
A4:15:66:7B:73:37 2014-03-18T07:55:31.5740126Z> charge = 4
A4:15:66:7B:73:37 2014-03-18T08:31:07.8712862Z> charge = 3
A4:15:66:7B:73:37 2014-03-18T09:11:03.4511662Z> charge = 2
A4:15:66:7B:73:37 2014-03-18T09:53:39.8267317Z> charge = 1
A4:15:66:7B:73:37 2014-03-18T10:39:10.1744290Z> charge = 0
Cancelling IO
Cancelled IO
Close fs
Close fs
Close sh
Close sh
Device is closed.
The thread 0x198c has exited with code 259 (0x103).

Code:
Battery charge-up from empty, USB only, light bar off 0,0,0, no input or rumble output.

A4:15:66:7B:73:37 2014-03-18T12:46:31.6527686Z> start
A first chance exception of type 'System.IO.IOException' occurred in mscorlib.dll
A4:15:66:7B:73:37 2014-03-18T12:46:31.6737947Z> power subsystem octet: 0x00
A4:15:66:7B:73:37 2014-03-18T12:46:31.9010782Z> power subsystem octet: 0x10
A4:15:66:7B:73:37 2014-03-18T12:47:12.1609954Z> power subsystem octet: 0x11
A4:15:66:7B:73:37 2014-03-18T12:52:21.0174737Z> power subsystem octet: 0x12
A4:15:66:7B:73:37 2014-03-18T13:06:21.6846950Z> power subsystem octet: 0x13
A4:15:66:7B:73:37 2014-03-18T13:15:34.9572245Z> power subsystem octet: 0x14
A4:15:66:7B:73:37 2014-03-18T13:26:32.4207929Z> power subsystem octet: 0x15
A4:15:66:7B:73:37 2014-03-18T14:12:46.5891818Z> power subsystem octet: 0x16
A4:15:66:7B:73:37 2014-03-18T14:48:36.6376180Z> power subsystem octet: 0x17
A4:15:66:7B:73:37 2014-03-18T15:15:27.0815840Z> power subsystem octet: 0x18
A4:15:66:7B:73:37 2014-03-18T15:40:55.4010517Z> power subsystem octet: 0x19
A4:15:66:7B:73:37 2014-03-18T16:13:39.7807583Z> power subsystem octet: 0x1a
A4:15:66:7B:73:37 2014-03-18T16:35:42.6888557Z> power subsystem octet: 0x1b

Code:
Battery run-down with idle controller, connected over Bluetooth, but no light bar or rumble activity.

A4:15:66:7B:73:37 2014-03-19T00:47:53.0821055Z> start
A4:15:66:7B:73:37 2014-03-19T00:47:53.1111423Z> power subsystem octet: 0x00
A4:15:66:7B:73:37 2014-03-19T00:47:53.1191523Z> power subsystem octet: 0x09
A4:15:66:7B:73:37 2014-03-19T01:52:48.4328218Z> power subsystem octet: 0x08
A4:15:66:7B:73:37 2014-03-19T03:13:00.4335924Z> power subsystem octet: 0x07
A4:15:66:7B:73:37 2014-03-19T04:35:12.2579131Z> power subsystem octet: 0x06
A4:15:66:7B:73:37 2014-03-19T05:55:29.1768217Z> power subsystem octet: 0x05
A4:15:66:7B:73:37 2014-03-19T07:11:56.5862843Z> power subsystem octet: 0x04
A4:15:66:7B:73:37 2014-03-19T08:37:22.0432739Z> power subsystem octet: 0x03
A4:15:66:7B:73:37 2014-03-19T10:01:17.5489968Z> power subsystem octet: 0x02
A4:15:66:7B:73:37 2014-03-19T11:11:19.4022530Z> power subsystem octet: 0x01
A4:15:66:7B:73:37 2014-03-19T12:26:33.2058493Z> power subsystem octet: 0x00
Cancelling IO
Cancelled IO
Close fs
Close sh
Device is closed.
A4:15:66:7B:73:37 2014-03-19T13:45:46.3451560Z> disconnect

It definitely does appear that the battery meter is meant to go from 0-100% but it is not ideally-calibrated to the non-linear discharge rate of the battery. It is very telling that the battery drains several times more quickly with the light bar on than off, so the next release is going to focus on having an active controller stop displaying the light bar, because you obviously do not need it to tell the controllers apart except when you do PS-Eye-type things, or the controllers are sitting down and you want to pick up controller #x specifically and not guess which is which. I'll also change back the charge indicator to a percentage because it does specifically use values 0-10 (0x0 through 0xb.)

You see that the 0x10 bit gets set when it is charging from USB. Notice also that the next two bits get set when I plug in a headset. This means that the description for the fields on http://eleccelerator.com/wiki/index.php?...ualShock_4 does appear reasonably-accurate. Eventually, I want to add an estimate system to turn the charge level measurements into an actual number from 0.0 to 100.0 indicating estimated charge level, and from that we can estimate the estimated remaining battery life (minus rumbles and stuff which are essentially non-predictable.)
Reply
#43
(03-17-2014, 08:47 PM)Jays2Kings Wrote: I might try making a new B&W icon with something the symbolizes the DS4, like the shape of the light bar or something. That might work for too for colors.

The light bar sounds like a great idea. Since it's oblong in shape it could easily fit the USB symbol or a plug under it to indicate charging, and otherwise a battery percentage could be shown. As you said it would also work great with colors, since that's the actual function of the lightbar.
Reply
#44
houston, we have a problem! ;D My upper touchpad dont want to middleclick anymore Sad i dont know why.

Edit: using v.18.1 btw, do i still need to install the bus driver? Ah I noticed that the touchpad is much more percise, did you changed something? its awesome!
Reply
#45
(03-19-2014, 02:30 PM)Rizzler Wrote: houston, we have a problem! ;D My upper touchpad dont want to middleclick anymore Sad i dont know why.

Edit: using v.18.1 btw, do i still need to install the bus driver? Ah I noticed that the touchpad is much more percise, did you changed something? its awesome!

I'll check out the upper-touchpad stuff, but it might only work for some controllers if it works at all... I essentially have replaced it in Button Mode with a "fallback" that also activated when you try and press an area that is between the left and right button zones. I think that just like the variable dead zones on the thumbpads and the triggers, the touchpad sensor may be not be aligned in every controller such that you can reliably hit the "top" without also hitting somewhere on the top few pixels of the touchpad. In this case, we could have a configuration for the top-touchpad-zone separate from any other zones, because it's on that weird arc edge.

You will not need to ever reinstall the ScpVbus until someone announces that a new version has come out that improves or fixes something. Here's why the touchpad is now more reliable/precise/less jittery:

** 2014-03-16.1
* Correct a drop of some touchpad data. There may be 1-4 touchpad status (finger location) updates per packet, and previously we would ignore the second, third and fourth. These would likely occur while there was a lot of detailed finger motion and/or the DS4 is delayed transmitting its sensor data packet. The result is that touchpad usage should feel more precise and smooth.

Edit: Found the problem with not getting touchpad push events without a finger down (something I simply wasn't that concerned with testing because I don't use it.) The 2014-03-19.0 build should help you out.
Reply
#46
wow you are very fast in fixing problems *thumbs up* i call you awesomeus prime from now.
Just want to inform you about a bug that punkbuster sees this program as something bad, because everytime i play battlefield 4 and want to try it with the controller pb kicks me out.
But you do such a nice work! Take your time i dont want you that you burnout urself. =)
Reply
#47
(03-19-2014, 10:15 PM)Rizzler Wrote: wow you are very fast in fixing problems *thumbs up* i call you awesomeus prime from now.
Just want to inform you about a bug that punkbuster sees this program as something bad, because everytime i play battlefield 4 and want to try it with the controller pb kicks me out.
But you do such a nice work! Take your time i dont want you that you burnout urself. =)

I am really enjoying working on some software that I actually use for once, after spending the last decade working on software for big businesses! Does Punkbuster give any indication what's wrong? Did you try launching it with the touchpad in Disabled mode so that there's no virtual mouse movement? I wonder what it might be rejecting if not the virtual mouse control... Been so long since I've had a program that uses Punkbuster, maybe Q2 days!
Reply
#48
(03-19-2014, 11:46 PM)electrobrains Wrote: I am really enjoying working on some software that I actually use for once, after spending the last decade working on software for big businesses! Does Punkbuster give any indication what's wrong? Did you try launching it with the touchpad in Disabled mode so that there's no virtual mouse movement? I wonder what it might be rejecting if not the virtual mouse control... Been so long since I've had a program that uses Punkbuster, maybe Q2 days!

Hey, sorry i cant tell you what punkbuster is worried about. But i can tell you that i noticed that the touchpad isnt that percise when the controller is wired to the pc. It seems that the touchsensors detect the thumb as 2 fingers, and the courser is starting to jump a bit if you try to point at something, thats really annoying, because you cant close something or in gould wars 2 i cant open the invetory as easy as with the bluetooth connected controller, maybe you give it a try and see the difference.
Reply
#49
(03-20-2014, 03:09 PM)Rizzler Wrote: Hey, sorry i cant tell you what punkbuster is worried about. But i can tell you that i noticed that the touchpad isnt that percise when the controller is wired to the pc. It seems that the touchsensors detect the thumb as 2 fingers, and the courser is starting to jump a bit if you try to point at something, thats really annoying, because you cant close something or in gould wars 2 i cant open the invetory as easy as with the bluetooth connected controller, maybe you give it a try and see the difference.

Did you check Task Manager to see if there are extra DS4Tool.exe instances running? There is an existing bug where they go invisible. Thanks for your feedback!
Reply
#50
I've just started trying this version out and the first thing I noticed was that it detects a tap much better. Before it would drift a little when tapping to click causing me to miss what I was trying click. It doesn't seem to do that any more. That's a pretty big improvement for me. Thanks for your efforts.
Reply




Users browsing this thread: 4 Guest(s)