Sadly, there isn’t. I’m basing all of my information on that text file, and the same data that gamesx.com and tons of other places have on the net. The only one that runs at 500KHz is full DS2 mode. The DS1 red and DS1 green modes are 250KHz, and both report 4 bytes of analog data, one byte for each X and Y of each of the two analog sticks. This is in addition to the digital button and D-Pad information. The only state that reports analog button data is the DS2 native mode.
We know the SPI mode settings needed to communicate. We know the commands that change modes from that text file. The only thing we don’t know for sure is which of the commands are sent by the PS2 in which order, and which exact one kicks up the frequency to 500KHz. Record the transmissions on a real DS2 controller when its first plugged in, and you’ll find out.
Wireless however is something I’ve been planning for the future. Some of those 2.4GHz transmitter/receiver pairs are cheap enough and fast enough that I could just spam button information out. The board inside the stick would be tiny, holding the transmitter, a couple of parallel to serial shifters, and maybe a big honking capacitor or rechargable battery. Receiver would plug into one of the piggyback connectors of the UPCB, probably in a project box plugged into the console. This is a ways down the road though.
I ordered a few 44pin 9572 CPLDs and PLCC socket adapters, so I guess I’ll start working on Dreamcast when they get in. Still no idea how long it will take to get done; even with the actual bit reading problem handled by the CPLD, its a complicated protocol and I’m know sweet fuck all about VHDL programming so far. But that’s okay, two months ago I knew sweet fuck all about PIC programming.
Numbski, I found an uber easy to make JTAG cable: http://warmcat.com/milksop/cheaptag.html
If you get the time, please see if you can grab the code off of the CPLD in that controller of yours, or talk to me if you’re willing to send it so I can try. Its probably code protected, but its worth a shot Also let me know if there are any other components on that controller; crystals, other IC’s, whatever.
OMG Toodles that looks great! I have just gotten off call, so this is the first I’ve been able to give the board a look in weeks.
Dreamcast support is paramount in my book, followed by xbox1. But if the device could do DC & PS2, I’d pay handsomely for it. I do collect sticks & the like (I have over 50?), so I’d probably skew the price what others would pay…
Support for more systems is the only thing holding me back… I’m actually a big Xbox 360 guy, but I understand the complicated situation with that. Once Xbox 1, GC, and Dreamcast support are implemented, I will definitely get a couple of these. (Wii Classic is a good idea too though).
If you needed preorders to justify getting a big batch of PCBs printed, I’d be down for that at any time.
I appreciate feedback from everyone, so keep it coming.
Just a note, it works just fine on PS2; It still acts as a PS1 digital controller, but CvS2, MvC2, and everything else I’ve thrown at it PS2 wise works peachy. That problem was resolved a couple of releases ago.
DC seems to be pretty important for everyone, which is why I’ll be working on it when the CPLD’s I ordered get in, mid next week. I have NO idea of an ETA on it though; its a complicated protocol, and I’m new to programmable logic. The minor downside is that it look like it’ll require a separate board, and its a PLCC surface mount part. The PCB will be cheap, but I’d have to have the fab house solder the part for me. No idea on cost; let me try to get it working first.
I will work on GC until the CPLDs arrive. Xbox 1 is a ways out, especially if Im working on DC first.
As for Xbox 360, piggybacking will require a few chips (the analog switches needed to get the pcb to use a common ground), so Im debating getting a separate PCB fabbed for it. It’ll be fairly small and cheap, but I realize a number of people want xbox360 support as easy as possible, and that’s just not gonna happen by just putting up a schematic. It’ll end up having two little wires going to each direction and button that you’d have to solder to the xbox 360 board.
THat’s the problem, he doesn’t have it worked out yet.
Toodles, PM me. I’ll just send you the controller. My DC has been gathering dust for a quite a while now. Being without the controller won’t hurt me too much. If it would increase my favor with you, I’ll even send you one of the custom ball tops I’m working on too.
Ok. Brill. I will get on the case. I only need analog mode. So I will use your txt file to arrive at a solution. When it works I will send you my code for your project as a token of my gratitude! Big thanks due if it all works. I guess it will be at the 250kHz DS1 mode, since the DS2 mode with extra resolution stick and analog buttons has no benefit for me. This help to move your current code from digital to analog hopefully.
Mmm. Just did the deed on the txt file. Given that only DS1 analog mode required i.e. no need to kick up to 500kHz and stay at 250kHz
Reprogrammed my PIC to cater for all the modes (assuming mode not changing) The console is now stuck in “Query_Model_And_Mode” 0x01, 0X45… on console CMD line. This is where the txt file runs out of info. Expect lots of 0x00 on CMD line after this header according to txt file, but getting lots of 0x5A’s instead.
Need a Sony PS2 console god to crack this one… And I was so optimistic.
Hey, I’ve managed to do the logs on the PSX controllers, on both the CMD and DATA line. I have 6 logs of PS1 DS1 joypad and 1 log of PS2 Dual Shock2 joypad. It was fun getting there. I’ll decypher the DS1 by early next week, hopefully. If you want ther DS2 log just say…
Nice explanation, I don’t even have a Hrap2 and yet I was able to understand it easily. Should be easy for others to do. If they have a hrap 2 in their possession.
All the instuctions look really well done. Although I dont think it was mentioned anywhere how to go about setting up a piggybacked controller. Are you planning on making a set of directions for that?
Hey Toodles!
Got my UPCB today and took some pics and made a small “connection guide” for the basic setup so regular people can understand. Dunno if this is 100% correct though, please let me know and I will change it.
One more question. I know that the piggyback plugs are marked as Dreamcast and Xbox360, but is it possible to piggyback any controller through these ports or are they made specifically for those two controllers?
The connectors can be used to piggyback any controller as long as they use a common ground setup, and use 2 or less wires for communication.
Frankly, the only difference between the two connectors is which signal has to be sent to the 4066N analog switch to turn it on. Otherwise, they’re identical. You could totally wire up the one marked DC for Xbox360 and visa versa. But for writing directions, it helps to have them clearly designated
If you want to put something else instead of DC or Xbox360, you can, as long as they use a common ground setup, and use 2 or less wires for communication. Gamecube, N64, Xbox1, etc. are all usable. I am fighting the urge to piggyback an xbox1 controller in mine, since my Dreamcast needs are met with the Saturn cable and converter.
I wouldnt hurry off to try to make one yet. The software to activate the piggybacks hasnt been added to the UPCB code yet, and frankly it hasnt been tested at all.