Rulings for modifying joysticks in 2007?

I did not find this topic in any of the posts or the 2007 rule book and I am wondering…

Per 2007 rules, can we modify joysticks or controllers to use
in place of the kit provided joysticks?

I am considering modifying a couple PS1 controllers but would like to know if anyone has found anything in the 2007 rules which dis-allow this sort of thing.

I am only interested in hardwiring the controls to the DB15 connector(s)
and not messing with (by-passing) the serial circuitry inside the controller.

Please advise (and thank you for your advice.)

I don’t think there is a set rule stating that you cannot use your own control devices to operate the robot. What gives it away is the fact that IFI has made a USB Chiclklet that can plug into the standard Joystick Port and then plug in a USB Control Device and use it to your liking. So if you want to modify a PS or X-Box controller you can, just make sure that its done the right way other wise it is close to $450 :yikes: to replace the OI. Hopefully if someone is also reading this who has modified a Game Console Controller they can tell you exactly how to do it so that nothing gets messed up :smiley: or search the White Papers. I’m pretty sure someone has posted a diagram on what goes where. Many teams have not used the Joysticks that FIRST provides and re-wire they’re own and used them quite successfully. I know I have seen a Game Console Controller and PC / Game Console Steering Wheel with and without the pedals used with the OI to operate the robot so I know it can be done. Take your time and do it right :] .

Good Luck to your Team this year and I hope the controller works the way you want it to. :wink:

I’m surprised that no one has come up with plans to modify a Wii controller.

That would sure be interesting, and expensive. (although, perfectly legal…)

Not if it’s wireless. Wired, yes.

The problem with the Wii controller is since it uses the accelerometers, it’s not just like an absolute position value like conventional joysticks. Even wired it probably needs a preprocessor to convert it into useful data. Do I think it’s impossible? Definitely not. I really hope a few teams have the resources to do it this year because it would be very interesting to see it incorporated into FIRST. I know that I would love to work with integrating the Wii in the offseason, but that’s a bit aways… so I’m hoping some brilliant minds somewhere are working on it over these 6 weeks. :slight_smile:

If a DDR Platform is aloud then that’s legal.

Some things are allowed and others are not. If you have a wireless controller, I think it’s safe to say that you will not be allowed to use it. If you have a controller that is wired to the OI, you’re legal. (Very large generalizations here, but you get the point.)

Actually, per the rules, I did not see anything forbidding wireless devices in the OI side. On the robot, not allowed. Anything between robot and anything else, not allowed. However, on the OI, it wasn’t mentioned. As long as the actual wireless data transfer is only between the OI and control devices (where the endpoints are a controller and the OI, no feedback or anything like that involved), I think it might be allowed.

It would certainly be nice to use a Wii controller (practical? not sure, but it would certainly be very cool). We’ve had talks of that going around (partly because I’m one of the guys who originally reverse engineered the Wii Remote, so I’ve done quite a bit of work with it). Most likely we’ll end up using a wired controller (PS1/PS2 probably), but if the bluetooth interface in the Wiimote is legal and we figure out a good control scheme, we might end up using it.

Per R83:

All equipment connected to the joystick ports of the Operator Interface must be powered solely through the power available through the port. External power sources of any type are not permitted on any equipment connected to the joystick ports.

Shouldn’t be a problem, as the bluetooth transceiver can easily draw its power from the joystick ports. If anything, the Wii Remote’s batteries might be in violation of this, in which case you could just run a (power only) wire to the wiimote from the joystick port. These things are pretty low power, as they’re designed to run on batteries. The only thing left is the Wiimote’s sensor bar (if you choose to use the pointing stuff), which could be modified on joystick power, but I don’t think it’s necessary, since it doesn’t actually “sense” anything (it’s just a bunch of LEDs, no electronics at all), and it provides no information to the remote (as has been mentioned around, candles work just as well, as does pretty much any source of IR), so it wouldn’t be considered part of the actual “joystick”

Portable computing devices can not be connected to joystick input ports on the Operator Interface.

This depends a lot on the interpretation of “portable computing device”. If we take it to mean PDA, laptop, etc, then it’s fine. If a PIC microcontroller (which would be doing the I/O between the bluetooth module and the joystick port, for example) is considered one, then it’s not.

Even then, you could always just put the Bluetooth transceiver inside the Wiimote, RF shield it, and claim it’s wired :smiley:

Note that Bluetooth operates at frequencies nowhere near those used by the IFI radios.

Last year we wired a SNES controller up for our robot. It was very difficult and painstaking. If it wasnt for our TRW guys last year (Chris,Kevin,Mike) we would have been aiming for nothing around that area. I would suggest asking someone about doing this. We dont have the guys from last year as much as we did before, so maybe were lucky for a USB chicklet? ( BTW i love it )

Thanks for all the info…

I took apart a PSX controller and am planning on buying a couple cheap joysticks and using the cables off of them.
Then I will solder the joystick cables directly onto the joystick pots and switches on the PSX controller PCB totally
bypassing the circuitry on the board. (I need to keep the PCB attached as it provide the mechanical structural
support for these switches and joystick) .

A couple other things I am curious about that some of you fellow hackers might know the answer to, are as follows:

1). Does anyone have a wiring diagram of the supplied GC-1000FR joysticks?
I could rip one apart and ohm it out to check but thought I would ask here first… I am mostly wondering if the
small joystick on the top of the joystick handle is connected to anything or not and what each of the buttons
are connected to…

2). Does anyone have any schematics or technical information regarding the OI or RC units?
I am wondering if each port is set up as a PC joy stick port which will support two joysticks and four buttons.

Also, I need to know if the Digital I/O lines on the RC unit have the internal pullups enabled, because I want to
hang a switch or two on these (digital I/O lines) to switch between 1 joystick mode or two joystick mode.
(for test purposes only) This way I can set it up in the code to read the switch which will allow the operators
to get a feel for each without me having to download code for each scenario.

Thanks in advance for any valuable info.

You might find the information provided in The Blue Alliance’s episode on custom controls of use. In the PDF that goes with the episode, you can find the pinouts for all four OI ports, as well as some images showing you how to wire things up to them.

You can run the Dashboard Viewer program (http://www.ifirobotics.com/dashboard_viewer.shtml) and see exactly what changes when you move the joystick and press the buttons.

2). Does anyone have any schematics or technical information regarding the OI or RC units?
I am wondering if each port is set up as a PC joy stick port which will support two joysticks and four buttons.

It is indeed set up that way. See http://www.ifirobotics.com/docs/oi-ref-guide-11-21-05.pdf for details.

Look at the rest of the documentation available at http://www.ifirobotics.com/oi.shtml and http://www.ifirobotics.com/rc.shtml if you want to learn more.

As a heads-up, this probably won’t work the way you want it to. All of the Playstation joysticks I have taken apart have 10K pots on the analog controls. The IFI OI requires 100K. If you use 10K it will not work the way you want it to. You’ll end up with an extremely limited range of values coming out of your joysticks.

While I have not been able to test it myself, Mike Copioli has suggested a work around to this problem using a voltage divider to provide the correct amount of current to ‘trick’ the OI. See his post for more details and math.

There is an amendment to this proceedure. You need a 1kohm resistor in series with the 10k pot between ground and the pot. This resistor provides a voltage offset of about 500mV.(%10 of Vaux.) If you do not do this, as you approach the ground side of the wiper travel, you will cause the O/I to read 127.

The 1k resistor is not an absolute value it may need to be increased or decreased depending on the total resistance of the pot. But it will get you close to center.

I have some experience using accelerometers for user input (in fact I’m working on a project to do just that at this very moment!), and with some processing, the results are quite good. However, you need to sample MUCH faster than the 38Hz that the OI does in order to get decent double integration precision. That would require an external processor, which would require power, which we don’t have.