Jump to content
IGNORED

Optical Rotary Controller Project (Completed)


RARusk

Recommended Posts

Although I still have some minor issues to work out here my optical rotary project for "Tempest 2000" is essentially completed. I made the pictures a bit large to allow for a better look so I apologize in advance if this causes any problems.

 

The first picture shows the finished main unit. The case used to be a fighter stick made by Capcom for the Super Nintendo that I had sitting in a closet for a few years. The rotary controller taken from the Logitech Wingman Warrior joystick is on the left. The three main firebuttons, from left to right is C-B-A, is on the right. The red and black mottled stuff is arcade laminate. It has also been painted with two layers of flat black model paint then buffed with a rag to give it a mattish look.

 

The second picture is of the 9-pin plug that a custom built cable, that will link it to the joypad interface, will be attached to. The pinouts are as follows (going from left to right):

 

Row 1

*****

1 - Rotary Controller (Left)

2 - Rotary Controller (Right)

3 - Keypad Column 1 (Firebutton "A")

4 - Keypad Column 2 (Firebutton "B")

5 - Keypad Column 3 (Firebutton "C")

 

Row 2

*****

6 - +5VDC

7 - Not Connected

8 - Keypad Row 2 (Firebuttons "A", "B", "C")

9 - Ground

 

post-5181-1159333268_thumb.jpg

 

post-5181-1159333350_thumb.jpg

Link to comment
Share on other sites

The next couple of pictures show the joypad interface to the rotary controller (plus any additional homebrew controller projects).

 

The first picture is of the joypad interface itself. You can clearly see the 25-pin plug on the bottom. You can use the interface like a regular joypad if the need arises.

 

The second picture is a closeup of the 25-pin plug. The pinouts, going from left to right, is as follows:

 

Row 1

*****

1 - Keypad Row 1 (Pause)

2 - Keypad Row 2 (A, B, C, Option)

3 - Keypad Row 3 (Right, 1, 2, 3)

4 - Keypad Row 4 (Left, 4, 5, 6)

5 - Keypad Row 5 (Down, 7, 8, 9)

6 - Keypad Row 6 (Up, *, 0, #)

7, 8, 9, 10, 11 - Not Connected

12 - Rotary Controller (Left)

13 - Rotary Controller (Right)

 

Note: I decided to give the rotary controller its own pins just in case I may need to do something special.

 

Row 2

*****

14 - +5VDC

15 - Not Connected

16 - Keypad Column 1 (Pause, A, Right, Left, Down, Up)

17 - Keypad Column 2 (B, 1, 4, 7, *)

18 - Keypad Column 3 (C, 2, 5, 8, 0)

19 - Keypad Column 4 (Option, 3, 6, 9, #)

20, 21, 22, 23, 24 - Not Connected

25- Ground

 

post-5181-1159334464_thumb.jpg

 

post-5181-1159334542_thumb.jpg

Edited by R.A.Rusk
Link to comment
Share on other sites

The first picture in this post is of the stand for the joypad interface. It used to be a NES Advantage joystick. This was originally going to be used for a stand for my PlayStation joypad interface (a picture of that, a project done years ago, is the third picture) but I never got around to finishing it. The reason I was using the Advantage was because it has a solid metal base which gives it weight and keeps it from being moved around. I resurrected the stand for the Jaguar joypad. the two posts go into the screw holes near the 25-pin plug. The piece of velcro is used to attach the top end of the joypad because the screw posts there are too shallow.

 

The second picture is the joypad interface on the stand. The third picture is of the PlayStation joypad interface I was going to use the stand for originally.

 

post-5181-1159335181_thumb.jpg

 

post-5181-1159335259_thumb.jpg

 

post-5181-1159335726_thumb.jpg

Link to comment
Share on other sites

The final picture is what the setup looks like. The rotary controller, which is on my Xbox, would sit on my lap as I play the game. The joypad is used to set things up and make gameplay tweaks. The Jaguar is attached to my RGB box using the PlayStation AV plug I hacked into it eariler in the year and displayed on my NEC MultiSync 3D monitor.

 

post-5181-1159336104_thumb.jpg

Link to comment
Share on other sites

I had a look at the replies in my "Optical Rotary Controller Project (Sneak Peek)" topic concerning the keypad interference issue and I will try to play around with the proposed solution to it. I will also continue to look for other potential solutions to this particular problem.

 

I opened up the main unit again tonight to try something to solve the interference issue. Using a combination of masking agent and black paint, I went and blocked out every other window on the encoder wheel. It didn't solve the problem but it managed to make the controller a little less twitchy and improved the control a little.

 

Well, I'm done here for the night. Let me know what you guys think of the project.

Link to comment
Share on other sites

I opened up the main unit again tonight to try something to solve the interference issue. Using a combination of masking agent and black paint, I went and blocked out every other window on the encoder wheel. It didn't solve the problem but it managed to make the controller a little less twitchy and improved the control a little.
I hope the modifications you made to the encoder are reversible, since you just degraded its performance... Why did you do this ? :? The "interference" is an electrical incompatibility that isn't fixable with mechanical tinkering -- besides, if I understood the way the encoder is currently connected, you may even damage it in the long term, since pressing buttons short-circuits the outputs. Edited by Zerosquare
Link to comment
Share on other sites

"I hope the modifications you made to the encoder are reversible, since you just degraded its performance... Why did you do this ?"

 

Yes, the modification is reversible. The reason I did it was because I felt that there was too many "poles" sending back too much information which I thought may be a partial cause of the interference. I was wrong of course. As for degradation, I don't think I degraded the performance at all. Before, when at the menu screen, if you barely tapped the paddle, the cursor would go nuts. In this case, the controller was too sensitive. In the gameplay, I didn't have any problems but I could see that if I barely moved the paddle I would move the shooter.

 

With the modification, even though the cursor would bounce around a bit, it was less than what it was before. I also found that I had a little bit more control over the shooter during gameplay. In essence I tweaked the sensitivity down a bit by blocking out half the windows.

 

"The "interference" is an electrical incompatibility that isn't fixable with mechanical tinkering -- besides, if I understood the way the encoder is currently connected, you may even damage it in the long term, since pressing buttons short-circuits the outputs."

 

Are you meaning to say that there is an actual current, in addition to the signals, going back to the interface? What buttons are you referring to? The firebuttons or the keypad buttons or both?

Link to comment
Share on other sites

Are you meaning to say that there is an actual current, in addition to the signals, going back to the interface? What buttons are you referring to? The firebuttons or the keypad buttons or both?
That depends on how you've connected pins 12 and 13 of your interface internally -- I haven't found the info in your post (maybe I've overlooked it).

 

Anyways, there are two differents things I think you misunderstood :

  • Encoders don't have "left" and "right" outputs - you don't get pulses on one output when turning it clockwise, and on the other when turning it counterclockwise. What they have are two quadrature outputs that need some decoding (this is why there is a special mode for rotary controllers in Tempest 2000). Stone gave a pretty good explanation of it there. The outputs of an encoder are not designed (logically and electrically) to be shared with anything else. As all four possibles states of the outputs are valid (even when the encoder is stationary), you can't wire it in parallel with traditional left/right switches, because it would cause falses presses even if you weren't using it. Conversely, if you pressed a button wired in parallel with an encoder output, it would short-circuit it to ground, and possibly damage the encoder. That's why there is a switch to choose between "normal" and "rotary" modes on the schematic I posted in your other topic.
     
     
  • As you noted, the Jaguar joypad uses an X-Y adressing scheme. This means that columns that aren't selected must not disturb the signals of other columns (such as the ones handling the numeric keypad), but your basic encoder doesn't know about that, and sends its signals permanently. The AND gates on the schematic take care of fixing that.

Edited by Zerosquare
Link to comment
Share on other sites

Interesting. I will try to find alternative points on the main board since I am getting them raw just off of the optical device. It's possible that the circuit that you posted, or a similar version of it, may already be on the main board. I think the plug area where the joystick cable is connected would be a good spot to try since that is where the signals leave the main board to go to the computer. If that doesn't work I'll get the necessary parts next week and build the circuit. I also think that using a switch on the +5VDC line heading to the main board would work just as well for switching between normal and rotary modes. Turn off the power and you turn off the main board and the signals cease.

 

I also wonder what they built to test out the rotary controller code during quality assurance of "Tempest 2000". I am curious what they used.

 

I also built a simple 9-pin to 25-pin adapter to try the Indy 500 driving controller to see what it did. It worked nice at the main menu but it was terribly slow in gameplay. Still no keypad function. I am beginning to wonder if the reason the rotary option was hidden was because any rotary device would cause problems with the keypad functions.

 

But, this is also not just a hardware problem but a game design flaw. If T2K did not use any keypad functions at all there would never be an interference issue. If they knew about the keypad problem than they should have programmed around it by taking away the camera and sound toggles from the keypad and allowing the rotary controller to have the keypad all to itself thus removing the need for you to use it during gameplay. They could have programmed T2K to let you to pause the game and allow you to switch camera modes (without the threat of losing any lives) using the main firebuttons as well as turning on or off the music and sound effects. A little lack of foresight there.

Link to comment
Share on other sites

As I understand it, Yak was given, at the last minute, a hacked up 2600 driving controller and told to "make it work with this". I believe he had about two days to do so, hence the areas where it is a little lacking (like the high score entry). Also, the calibration and sensitivity was never really tested, since he only had a 2600 driving controller which as you've noticed, is horribly in-sensitive (just as your optical one was horribly over-sensitive before you blocked out some windows)

 

The problem you're having is entirely related to the fact that your optical encoder is powered all the time, I doubt there would be a switching circuit already present on the board, since in a pc context, it should be powered all the time, so I would be surprised if you found one. Oh, and for the record, the rotaries made by myself and others (with the possible exception of the JediJeff optical ones) use mechanical encoders, and hook up to the original row column that the left and right pads were connected to, so they don't cause interferance with the keypad.

 

Good luck, it's been fun watching this project develop. It looks like you're very nearly finished now.

Link to comment
Share on other sites

Thanks for the info Tyrant. Being that this game came from the Tramiel run Atari I'm not surprised about the circumstances. Given enough time I'm sure that Jeff would have perfected everything.

 

Tonight I decided to find alternate points on the mainboard to acquire signals and in the process I knocked it out of commission (hopefully temporarily). I had tried several points without success. I was trying to attach one of the wires to one of the chips. I was trying to apply a little solder to the end of the wire so I could attach it to the chip. However, a small blob of solder fell onto the mainboard. To compound my careless error the mainboard was on. Luckily, the blob didn't fall on any major components. But a small part of it crossed the +5VDC with one of the sensor wires and before I could do anything I blew out one of the optical sensors. Yeah, that was really stupid of me. But I may be able to replace it and I will take the optical board to some of the electronics shops here in San Antonio to find the right sensor part. I may also go to Goodwill Computerworks to get a cheap mouse and get them from that.

 

By the way Tyrant, where specifically on the joypad do you connect the left and right wires leading to the encoder?

Link to comment
Share on other sites

Given enough time I'm sure that Jeff would have perfected everything.

Indeed, he'd never even played it properly until he used one of my rotaries at a retrovision, he was like "woah, so thats how it should have felt", which made me more than a little proud.

 

and before I could do anything I blew out one of the optical sensors.

Ouch! Thats not really what you wanted to have happen is it? Still, they *should* be fairly generic components, its just a case of finding one with a suitable package and making sure the electical specs are close enough, and then the fiddlyness of actually swapping them.

 

By the way Tyrant, where specifically on the joypad do you connect the left and right wires leading to the encoder?

I did it in a pretty crude way really. If you take a look at the upper board of a normal (non-pro) controller, there are large flat areas of copper all round the edges, most (all?) of which connect to the main "common" line of the d-pad switches. So I just drilled a hole though the board in one of those areas, scraped back the green coating, threaded two wires through and soldered them on, re-connected one to another bit of the board, to fix a trace I had to cut when removing the d-pad end of the board, and hooked the other one to the middle pin of the rotary. The other two (left and right) I just cut from the ribon cable, extended and connected to the two side pins of the rotary. As you can see its a lot less work than pissing about with optical encoders :D, and, well, I think the results were at least as good. I didn't actually care for the only optical rotary I ever used (a Jedi Jeff one, which was hyper-sensitive).

Link to comment
Share on other sites

"Indeed, he'd never even played it properly until he used one of my rotaries at a retrovision, he was like "woah, so thats how it should have felt", which made me more than a little proud."

 

Awesome Tyrant. It's nice to know that he had a chance to play around with one of your controllers. Even though he never had a real chance to build upon the rotary feature at least we found ways to make use of it and to play the game as it was meant to be played. I wonder why the rotary feature was put in at the last minute instead of it being in the design in the first place.

 

After reading on where you make your connections I have a suggestion to make. Solder three wires to the encoder and then solder the other ends to where the ribbon cable is soldered to the lower board so you won't have to do the extra work of hacking up the ribbon cable and not having to worry about fixing up traces on the upper board.

 

As for optical encoders, it doesn't hurt to play around with them and learn from them. I may still be able to get this thing working perfectly and it opens up options for those who want to build their own rotary controllers.

 

I did a little more surfing at the CUI website and I like a lot of the encoders they have. Who knows, I may find some in the wild on my outing tomorrow as I try to find parts to repair my controller.

Link to comment
Share on other sites

  • 4 months later...

After several months I finally sat down to try to fix this damn thing up.

 

After conversing with CUI I found that it takes a month to get one of their encoders because they have to be built for you and tested. Didn't feel like waiting that long.

 

I did an autopsy on the little board that had the sensors. I found that one of the signals was coming from the emitter and another was coming from the transmitter. The emitter had four pins and the collector had three pins. I hadn't seen any optical related parts that were like that before and I couldn't find any replacements here (nor did I ever find another Wingman Warrior joystick).

 

So I decided to abandon the optical board and look around for standard encoder replacements. I found two solid candidates: a TV/VCR remote control and a Hewlett Packard keyboard (both I picked up from flea markets and thrift stores). The encoder from the keyboard (which was used for volume control) had about 24 poles but after testing I found that it would not work for the controller. My controller was designed to be spun faster than Tempest's controllers because of the weights and I found that if you spun this encoder too fast it would essentially stop moving - because it was getting too much information too fast.

 

The encoder from the remote control had fewer poles (about eight) but it performed much better. As a matter of fact it was almost perfect. So I cut away the section where the encoder would come through on the remote and grafted it to my controller.

 

I also had to do some rewiring to the plug and cable. The first three pins ( 1, 2, 3 ) on the top row are Keypad Columns 1, 2, and 3 respectively and the first three pins on the bottom row ( 6, 7, 8 ) are Keypad Rows 2, 3, and 4 respectively.

 

The only downside is that the spinner itself doesn't spin nowhere near as fast as it was when it was still using the optical board. That's because it is attached to a regular style encoder and you can't have that loose style spin. But once one gets used to it I think it will be fine.

 

The major upside to this encoder is that I no longer have any joypad interference. When the spinner is at rest it settles into one of the notches within the encoder (which you can't really feel through the spinner shaft) and turns it "off". This allows me to use the keypad during gameplay, something I couldn't do with the optical board.

 

So I am pretty much finished. I will try to use my device to beat the game at a later date.

 

Now for some pictures:

 

post-5181-1170989156_thumb.jpg

 

This one is the new encoder in place. I took the dial that was attached to the encoder and glued it to the weights on the bottom of the spinner shaft after drilling a hole through the center of the dial and cut the pole that the light wheel was on.

 

post-5181-1170989277_thumb.jpg

 

This is the remote control I acquired the encoder from. There are other remote controls that use a similar encoder so these should be fairly common.

Link to comment
Share on other sites

  • 2 weeks later...

Yeah dude! that looks most interesting indeed! As far as the rotary stuff goes, I have been playing around with an old CX-22 track ball and an ST mouse and a 8 pack of driving controllers from the 2600.

 

I have similar switching issues like Tyrant brought up.

 

I did not really read all your specs fully so , forgive me if i missed, but I had four rotaries hooked up at once for a 3D warlords like game I threw together and they worked fine. The track ball and mouse cant work together or with anything else unless you power it seperately(well at least the way my circuit was set up.)

 

I think its that column and row addressing scheme and the

common is switched to the current row of switches...or is it the columns...whichever.

 

I want to avoid a seperate PSU and still be able to have two track balls on one port. It's not really even needed for a gam like Warlords but it would be neat to beable to hook up multiple devices with out a seperate supply.

 

I have to imagine there is some chip or circuit out there to use that supply from the port for all and avoid losing power to the powered devices like track balls and mice, and still read the no powered stuff

too.

 

 

Any suggestions?

Link to comment
Share on other sites

Interesting. How much did you have to pay for them and how good are they? Oh, and what part numbers did you get? I'm curious since I decided not to go through them. By the way, I haven't played T2K since I completed the controller. I have been busy finishing an RGB hack to one of my PS2's using info I gleaned from a service manual I downloaded and getting ready to get back into FAQ writing mode with the imminent release of "Grand Theft Auto: Vice City Stories" (PS2) in March. I'll see if I can squeeze in a game or two of T2K and give the controller a good run through.

Link to comment
Share on other sites

I recieved them as samples for one. You have to know how to talk to the salesmen, and it helps to have an actually registered business in electronics and gaming like I do. I have not recieved them yet. I told the salesman what I wanted, he said he'll send me a few different samples. I will take him up on the customizing offer. It is free.

 

 

I'll fill yuo in as soon as I get them.

Link to comment
Share on other sites

  • 2 years later...

It is now 2009.

 

After completion of the rotary controller I put it into storage. I didn't try to play around with it. Maybe because I was disappointed with having to put in a regular encoder instead of using the optical I had started with.

 

However, after a recent trip to the Goodwill Computerworks in Austin, I broke the unit out of storage.

 

During my trip I found a Sony BVE-910 editing keyboard for $10:

 

post-5181-1245552566_thumb.jpg

 

You will notice on the right side there is a large rotary device. After spinning it around for a few minutes I decided to pick up this well worn piece of equipment. It took me awhile but I managed to get the encoder out of the keyboard:

 

post-5181-1245552689_thumb.jpg

 

The nice thing about this device is that it has a long cable that can be disconnected from both the motherboard and the encoder. Very convenient. I also have no idea what type of encoder this is. Could be optical, could be standard, could even be magnetic for all I know.

 

But there was another problem. I had done a revision to the joypad interface and hadn't bothered to write stuff down. I went from a 25-pin plug to a 15-pin plug. I had to take everything apart to figure out how I redid the interface:

 

post-5181-1245552904_thumb.jpg

 

Row 1

 

1 - Keypad Row 1 (Pause)

2 - Keypad Row 2 (A, B, C, Option)

3 - Keypad Row 3 (Right, 1, 2, 3)

4 - Keypad Row 4 (Left, 4, 5, 6)

5 - Keypad Row 5 (Down, 7, 8, 9)

6 - Keypad Row 6 (Up, *, 0, #)

7 - Not Connected

8 - Ground

 

Row 2

 

9 - Keypad Column 1 (Pause, A, Right, Left, Down, Up)

10 - Keypad Column 2 (B, 1, 4, 7, *)

11 - Keypad Column 3 (C, 2, 5, 8, 0)

12 - Keypad Column 4 (Option, 3, 6, 9, #)

13,14 - Not Connected

15 - +5VDC

 

And I had done some slight tweaking to the controller base wiring as well:

 

post-5181-1245553026_thumb.jpg

 

Row 1

 

1 - Keypad Column 1 ( A, Right, Left )

2 - Keypad Column 2 ( B )

3 - Keypad Column 3 ( C )

4 - Not Connected

5 - Ground

 

Row 2

 

6 - Keypad Row 2 ( A, B, C )

7 - Keypad Row 3 ( Right )

8 - Keypad Row 4 ( Left )

9 - +5VDC

 

Once I refigured everything I went to try to see if this encoder would work with the Jaguar. The plug on the logic board on the encoder had six pins. I had to find the datasheet on the chip on the logic board to find where ground and +5VDC were. Once I did that then I placed the two direction wires (left and right) on two pins where I figured I could get something and turned on T2K.

 

Nothing.

 

But I still had two pins to play with. So I placed one of the direction wires on one of those. And the cursor started to twitch. This was a very good sign. I started a game and found my shooter just twitching when I spun the paddle. I then placed the other direction wire on the last pin.

 

And the shooter began to spin around the playfield. Success!

 

Sort of. I had placed the wires on the wrong pins so when I spun right it went left. Whatever. A quick switch and everything was good.

 

The wiring for this thing went like this:

 

Red - +5VDC

Black - Ground

Blue - Keypad Row 3 (Right)

Yellow - Keypad Row 4 (Left)

Orange - Not Used

Purple - Not Used

 

Now that I had gotten the thing to work I turned my attention to replacing the old encoder with the new one. The new encoder has three screws that attach it to the case. Pretty simple.

 

I used my Dremel to cut away the remains of the old encoder. Then I superglued a piece of plastic over where I cut the old stuff away. The BVE-910 used thicker plastic and this new piece helped to make the area as thick as the BVE-910 plastic plus it re-inforced the plastic and repaired nicks I made when cutting the old unit away.

 

Then I cut a new hole to let the shaft through and drilled three holes to attach the encoder to the case. I also removed the fragile 30-gauge wires I was using to attach the fire buttons to the plug and used better wires. I took the cable for the encoder and removed the orange and purple wires from it plus cut the plug from one end and soldered the wires to the plug. Then plugged the other end back into the encoder.

 

And this is what it looked like:

 

post-5181-1245554003_thumb.jpg

 

And a close-up of the encoder:

 

post-5181-1245554028_thumb.jpg

 

Then I assembled the unit and attached the paddle onto the shaft:

 

post-5181-1245554070_thumb.jpg

 

Then I sat down and gave the unit a nice tryout. I actually got to level 21 on my only play test.

 

My slightly messy setup:

 

post-5181-1245554195_thumb.jpg

 

post-5181-1245554217_thumb.jpg

 

I also found out that you need to have a second joypad plugged into port 2 otherwise you can't control yourself when doing the special levels or enter your initials for the high score list. Other than that it is pretty nice.

 

The unit is pretty sensitive just like the optical type. But the large paddle I think can give one better control especially since there is an indentation on top to place a finger plus a rubber grip that goes around it.

 

I also tried to get more information on this particular encoder but had no luck. There are also a couple of potientiometers on the logic board but they cannot be used to fine tune it. If you tweak them slightly then the encoder stops working.

 

I will probably try to play around with the new controller some more before I go and work on another project.

Edited by R.A.Rusk
Link to comment
Share on other sites

Thanks. I was very fortunate to find the BVE-910. This keyboard had a bit of gunk around the keys which gave me the impression that it was well used. According to one of the stickers attached to the keyboard it said "untested". Well, I don't know how a Goodwill would go about testing a video editing keyboard but I took it anyway.

 

Interestingly enough, I did a little research on the BVE-910 (after I disassembled the unit) and found that these are pretty expensive units (when brand new). One site was selling new units for around $8,110 and used for $2,750! But I don't know if I would've gotten anything for an untested unit picked up at a thrift store. Maybe if I find another one.....

Link to comment
Share on other sites

Wow, that's pretty cool and interesting.

 

I tried making just a standard joystick myself and it worked, though the pass-through to a normal pad in order to use its numpad didn't work out for me. I'm just too inexperienced with electronics in that fashion. If I had kept working on it, I wanted to eventually create my own combination joystick/rotary/numpad, but I got impatient and just bought a chaos reigns rotary, lol.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...