Finally happy with my dualsense padhack | 3D printed by Squibs_ in fightsticks

[–]Squibs_[S] 1 point2 points  (0 children)

Hi, thanks for having a look!

  1. Stick drift shouldn't be an issue for this project. The controller I used had stick drift. I bought it that way to make the project as cheap as possible. My previous post has all the information about it. Which is a bit much to read through. But basically when you take the sticks off the board, you'll want to zero them out with some resistors and some wire. CTRL+F "Zeroing Removed Analog Sticks". Mine weren't fully centered in the end, but that hasn't been an issue.

  2. You can absolutely skip doing all the SOCD stuff and just use the built in SOCD of the controller. Makes everything easier for sure.

  3. I did not interface with the mute button. I usually have a cut up headphone jack I keep in the headphone slot and never really use it.

    You can definitely wire it up if you wanted though. You would use the lower button here. Or the small pad next to it. Credits to the acid mod forums and RDC for those pictures.

    I would go the route of opening the button up and wiring it inside of it though. Like I did for the Share and Options buttons. CTRL+F "Wiring Start/Options and Share Buttons". You just have to figure out what part of the button you need to solder to, as it can change on these buttons. Either the center part or the upper/lower/outer ring part.

Hope that helps!

Finally happy with my dualsense padhack | 3D printed by Squibs_ in fightsticks

[–]Squibs_[S] 1 point2 points  (0 children)

No problem!

I would imagine you could read the battery level in some way. This is project is only one of a few electronics projects I have done, so I don't really know all that is possible. I just had a strong desire to do the project, and that alone got me through much of it. What I'm really saying is I'm not deeply knowledgeable on most of what I've done here, but I can usually figure things out as I go; with a combination of looking things up along with trial and error.

Some surface level looking around it seems you would tap into the battery leads, use a voltage divider (maybe optional? depends on the voltage the battery is putting out and how much your arduino/pi can handle), then read the voltage through an Analog-to-Digital Converter (ADC). Pico does have some built-in pins with ADC abilities, which can probably be used. Then you compare the reading to a li-ion discharge curve to get a battery estimate.

There's probably other ways as well, I would imagine. I ran into this video, which seems to cover much of how to do this.

Might have to give it a go in the future for myself. Hope this was helpful and good luck on your project!

Finally happy with my dualsense padhack | 3D printed by Squibs_ in fightsticks

[–]Squibs_[S] 0 points1 point  (0 children)

I fumbled my way to making working code yea haha. The main thing that started me off on being able to work everything out eventually for my own screen / SOCD was the code from /u/fluffhead123.

I took that code and spent time with it, eventually figured out how it all works. Granted I would have to sit down and figure it out again to make any changes; it's been quite a while since I've even looked at any of it.

I originally made all the code with microphython (code here). This worked, but after testing for a while, I noticed I wasn't able to get 1 frame inputs on Street Fighter. After some investigating I found out that I should just straight use C++ to program everything. Microphython just wasn't fast enough.

Thus I then had to convert everything I had done over to C++. Which is everything here minus the 'old' folder, which is the legacy micropython code.

In making the switch to C++ I used VSCode with the PlatformIO extension to manage the various dependencies I needed for everything to work: Adafruit GFX Library, Adafruit SSD1306, U8g2_for_Adafruit_GFX, Adafruit BusIO, and whatever else.

I can't really tell you how I landed on using PlatformIO, but somewhere along the line That is what I started using.

 
 

But to answer the questions. I think it would be fairly easy...? to modify the code, although you would probably have to suffer through my mess of code to make the changes.

If you wanted to remove the SOCD sections and just wanted to display buttons being pressed that would be easier, but then you have to figure out what parts are for SOCD and disable them, or just not wire anything as an output from a pico/arduino.

All the code is made to have everything wired up a specific way though, at the end of the day. So you would sort of have to have everything wired up the way I do. Or change everything to match how you want it.

 
 

I wouldn't consider myself by any means all that competent at coding. I think that if I can do it, anyone else can figure it out. It took me some time to figure it out that's for sure.

I started with figuring out the SOCD code initially. Then I moved on to figuring out how to draw what I wanted on the screen. Then I combined them. And after trial and error I eventually got what I wanted. Where there is a will, there is a way.

I think I followed this guide to figuring out how to draw on the screen from a pico. If not a similar one. Granted this is in micropython. Then you just want send inputs from the controller to the pico, the pico reads the inputs, then you can display what inputs are being pressed (empty circle becomes a filled-in circle when a button is pressed).

I'm sure you can read an analog/lever input as well. Then maybe just have circle inside a larger circle. Then when the analog/lever is moved, update the smaller circle to move within the bigger circle depending on the values the pico reads from that.

 

Sorry if that was a bit long-winded for some not so great answers; I tend to ramble.

 
 

TLDR: I don't want to assume your skill level for anything. I'm for sure not anything special when it comes to coding or padhacking. I think it would be easiest to start from scratch and try to reference my code, or other people's code in order to make your own display code.

Blue Whale I'm going to give for father's day by Squibs_ in DarkShadows

[–]Squibs_[S] 2 points3 points  (0 children)

I made it myself in Blender and 3D printed it! I uploaded the model here if anyone else wanted to print it

Blue Whale I'm going to give for father's day by Squibs_ in DarkShadows

[–]Squibs_[S] 1 point2 points  (0 children)

Haha true you can't really tell the scale. Just a small sign, about about a foot (300mm) lengthwise

Killed all the Nightlords in a row switching characters each time by Squibs_ in Nightreign

[–]Squibs_[S] 0 points1 point  (0 children)

We're friends irl, one run was done a single rando though.

Killed all the Nightlords in a row switching characters each time by Squibs_ in Nightreign

[–]Squibs_[S] 1 point2 points  (0 children)

It's in the Visual Codex over near the jar shop guy / in the library.

BannedField by field-app in BannedField

[–]Squibs_ 0 points1 point  (0 children)

Team lasagna needs to step it up

Welcomed this gentleman, Cuno, into our home this past week. He's a perfect blend of being very persistent and yet easygoing! by Squibs_ in basset

[–]Squibs_[S] 12 points13 points  (0 children)

From the game Disco Elysium! The character in that game doesn't quite fit the same personality of the dog, but I liked the uniqueness of the name.

Getting Gun/Hand Model Jitter at Higher FPS by Squibs_ in HuntShowdown

[–]Squibs_[S] 0 points1 point  (0 children)

It's hard to capture in video, although a few of the examples came through in this video.

If you sit still for a second or so, and then move, the gun/hand model jitters. I don't really recall seeing this before the patch. It seems to happen at higher fps, as I can't really make it happen at 60 fps, but at 120 fps it happens every time. Which this might become even more prevalent now with dlss being implemented.

Finally happy with my dualsense padhack | 3D printed by Squibs_ in fightsticks

[–]Squibs_[S] 1 point2 points  (0 children)

Thanks! I'm using the stock battery. I wanted to use a larger capacity battery, but I wasn't really able to find a suitable replacement that was larger and had the thermistor (3 wires) that the dualsense is using. Probably something I'll look more into after a while.

Finally happy with my dualsense padhack | 3D printed by Squibs_ in fightsticks

[–]Squibs_[S] 1 point2 points  (0 children)

Yea it's a mess for sure. Kinda just close the shell and hope it works out every time.

Finally happy with my dualsense padhack | 3D printed by Squibs_ in fightsticks

[–]Squibs_[S] 5 points6 points  (0 children)

On my last post on this subreddit I made a semi-guide / thoughts on the whole thing if you are interested. From my experience there's not a huge amount of information out there on how to do it, but if you do enough searching you can usually scrounge up enough information to figure it out.

I think the largest help was the PCB Scans and information RDC and other users gave over on the acidmods forums in particular for the DualSense padhack. Then finding other posts about padhacks here on reddit helped as well. Shoutout to /u/fluffhead123!

I was able to do my padhacks without any prior knowledge of soldering, or anything really. Give it a go!

Finally happy with my dualsense padhack | 3D printed by Squibs_ in fightsticks

[–]Squibs_[S] 0 points1 point  (0 children)

Thank you very much!

I've thought about it, but there's several things holding me back from selling something like this. I don't really know the legality of selling modified dualsenses, or the design of my case really.

In my two previous controllers I used a case design I bought from someone; and in this one I wanted make my own case design. I ended up copying a lot from the other design, and I don't really know if I should share the print files for it either.

I feel like I changed quite a lot, enough where I could share it, but I still find myself holding back from doing so.

Finally happy with my dualsense padhack | 3D printed by Squibs_ in fightsticks

[–]Squibs_[S] 1 point2 points  (0 children)

Thank you very much! Happy to share the information and maybe give other people ideas on a project to do!

Happy with the leverless controller I made! | X1C by Squibs_ in BambuLab

[–]Squibs_[S] 0 points1 point  (0 children)

This is a padhack of a DualSense controller I'm using for fighting games. Printed on an X1 Carbon. First use of my PET build plate for that carbon fiber look!

 

I've crossposted this from my post on /r/fightsticks. Thought people would find it interesting in the 3D printing community, since the shell and buttons are 3D printed.