Test Fixture Fun

It’s been a while since I’ve done any posting to my blog. Mostly because what I’ve been working on I haven’t really been comfortable releasing to the public, so I just keep things hush hush for now. Maybe in a month or two that will change, but for now this will have to do.

In an effort to expand my horizons, I’ve been dabbling with a microcontrollers a lot lately. I’ve messed around with them a little bit in school, and a bit more at work, but overall nothing extensive enough to really allow me to say “I know MCU stuff really well.”

With MCUs, it’s important to plan things out, because unlike a regular basic circuit you can’t just build it up, power it, and let it run to your heart’s content. With an MCU, you have to figure out not only how you’re going to hook it to the rest of the circuit, but also how in the hell you’re going to get your program onto it.  Seems simple, but what happens when you want to do multiple? What happens when you want to streamline your circuit into SMD components? And what happens when you can’t actually test out your MCU on it’s own in a proto board because it’s using something like USB and requires external circuitry to drive/function?

All these things need to be considered, and also the immediate answer is to simply create a test station, or test fixture.

Starting out, with only 1 or 2 chips, and the simplest of schemes you may end up just doing something like this, and then just plugging it into your proto circuit:

It’s quick, dirty, but ultimately very inefficient at larger scale. It also won’t really work if you’re using something that’s surface mount. Luckily, when you use SMD chips there’s generally some sort of adapter to help you out with this, something like this:

Again, that will only get you so far, since it will help you easily program them, but what about making sure it’s functional in the circuit as intended? The best way to go about things, since you’re going to need to test out your final circuit anyhow, is to build a station of sorts for any sort of testing and possibly updating of the firmware that’s been initially programmed.

In my case, I’ve got a few requirements

1. Fast, eventually I’m going to do a bunch over a span of time, I’d like that to be short as possible.

2. Firmware updates, my project updates it’s firmware through the USB lines, so accessing those is the best way to do this.

3. Switchable, both for power and for testing/updates. You NEVER should plug any sort of PCB into a hot station if it’s avoidable at all. That can (and absolutely will) lead to accidentally putting power somewhere you don’t want it.

4. Modular, I’d like to incorporate a USB jack instead of just soldering a USB cable, since I’d like to be able to conserve space if I can. This also allows me to swap cables really easy if by chance my cat uses it as a chew toy.

With those points in mind, I started off on the project. It’s pretty straight forward, I basically took a proto-board that’s designed for SMD components, and dremeled off the entire top layer so that it’s only the FR4 that’s left.  Once that was done I got a general idea of how to place things, and decided to use none other than pogo-pins to make contact with my board. After measuring stuff, drilling some holes, and a bit of grinding I ended up with this guy:

I already had the drill bits for everything so getting the correct hole size wasn’t terribly hard. As you can see, I’ve incorporated a USB jack, and 2 switches. The bottom left switch controls the grounding of the pogo that’s closest to the camera, allowing for FW updates, and the left switch simply controls the power. Ignore that second unpopulated pogo, I decided not to use that spot but just in case I change my mind I kept it in place.

One thing I noted with these little Radio Shack switches is that they can be really finicky. What I mean is that I found out in one of the switches… pushing the switch all the way to one side would actually not connect the 2 lines as it was supposed to until you scootched it back toward the center a tad. I had about 30 minutes of head scratching on that one. The easy fix was to move the wire to the other side of the throw, which wasn’t as picky and worked great.

Oh, and one more thing. If you plan on grinding out a large space for something like those switches, don’t try to just drill a single hole in the center and grind outward. It seems like a “duh” concept, but instead use a smaller drill bit and bore holes to outline what you want to cut out, that way you don’t have to grind as much material, just the pieces in between the holes.

Let’s check the underside of this guy, I’ll show you the mess that I made trying to align the pogos here and there while trying to keep the wire from coming unsoldered >.<

You’re looking at that correctly, it’s a solid plane. So precautions had to be taken, and once I got my holes drilled I proceeded to dremel in between all the spots so that nothing was shorted together. The plane then becomes one big ass ground, which is useful in some regards but still makes soldering to the ground spots a bit difficult as it just becomes one big heat sink.

PROTIP: In the picture you’ll see that I don’t have any sort of nuts/washers on the #4 screws used as standoffs. I use a bit of a trick that I picked up doing arcade stick mods. With a #4 screw, you can drill with a 3/32 drill bit, and it will leave a hole that is picture perfect for the threads of the screw to catch and thread itself into the material and is secure enough to mount PCBs and other things into certain softer mediums (plastic and FR4 for example). This allows you to not have to utilize any nuts (unless you plan on having heavy strain, which I don’t since the board is really light).

It seems like a lot of work for something like programming your MCU’s, but in the long run it saves you time and hassle. They use things like this in the industry quite often, and since my first product could be argued that it’s kind of a test fixture of it’s own I’ve gotten quite good at mocking them up. This one was just easier to create since accuracy didn’t matter as much as I’m the only person using it 🙂

Dual Modded V-Tech Vsmile w/ LED Upgrade

A while ago, Gummowned put up his mod of the Vtech Vsmile, and itching to continue practicing my modding skills, I decided to do my own…. but with a bit of a twist.

I decided to see if it was possible to dual mod that silly thing, and add a bit of an added flair as well.

I wanted a few goals for this design:
1. The controller works on both an XBOX360, and a Playstation 3, with all buttons functioning, save for 1… as this is designed for a 4 button game.
2. Everything must be INTERNAL, mostly because I like the “cool” factor that the Imp board gives.
3. Extra LEDs connected to the giant button in the center, to add to the silliness.

To do this mod it requires a few tools:
1. Multimeter, has multiple uses but mainly will be used for continuity testing.
2. Soldering iron, absolutely needed.
3. Solder, I used .015 silver solder, because it’s the smallest Radio Shack carries.
4. Wire, I used 28 gauge wire for data lines, and 24 gauge for the power.
4. Electrical tape, it has many uses.. but mostly wire management and isolation.
5. Hot glue gun, this isn’t technically required, but covering some of your connections is a fantastic way to make sure you don’t have unexpected shorts in the future.
6. Proto-board, I test as I go along. That way there’s nothing unexpected.
7. Access to a dremel, you’ll be doing a lot of custom fitting. This mod required more prep work than anything else, none of this is possible without a dremel.

Understand a few points:

Elapsed Time: Upwards of 30 hours, lots of fitting, checking the fit, and more fitting involved.

Level of Difficulty: Hard, to be honest this was ultimately more complicated than my Fightpad dual mod, because at least with the pad I had a direction, this kinda went one way…then lots of backtracking, repeat process.

As far as support goes, unless it’s a basic question he’s willing to answer, don’t bother Toodles if you try this and something goes wrong. It states in the welcome paper that he doesn’t support dual mods, and this mod screws with power lines and a lot of other things he tells you specifically not to touch.

You can contact me, but unless it’s a basic question, it would be extremely hard for me to help you troubleshoot issues. Mostly because the idea behind this is simple, but it’s the execution that’s murder.

Ok, let’s get started!

I ordered my Vsmile, Cthulu, Imp, and after a bit of trouble with my 4716 xbox controller, I had another fightpad to disassemble.

Open up your Vsmile to find this mess:

After cutting away all the boards and unscrewing everything, I kinda sized up the bigger boards to get an idea of what I was dealing with…

How the hell are we fitting all of that together? As it seems to stand with my mods, custom fitting is in order…so bust out the dremel (and for christ’s sake, wear protective glasses)

Case Prep:

After playing with some ideas, I came to the conclusion that the cthulu will sit under the big button, and the fightpad’s PCB will sit under that, with the plastic black “ring” in between.

Now to clear out out the bottom orange section, so that the fightpad PCB will sit as flat as possible, so we notch out where the spring and purple trigger assembly was housed, giving us space up to where the joystick will start.

I also trimmed the purple trigger, and crazy glued it into place so that there’s not a gaping hole in the bottom where crap can get in.

Because I’m doing this in sections, here’s a shot of the port hole I created for the LEDs that will eventually be wired to the big button:

As I said before, I’m showing this as a linear progression, but BELIEVE me when I say it was anything but that. That port hole was in the later half of this mess, after I had completed what is in the next section. So moving on to that….

Board Prep:

Here’s the big one, because dremeling a plastic case you can’t screw up anything too vital, and not recoup.

I started with basics, desoldering the cthulu’s accessories, as well as the fight pad’s. For the fight pad, I desoldered the triggers, but for Start, Select, and Turbo I simply cut the pins.. making things SUPER easy.

The next thing I did was shape the fight pad. At this junction in time I was curious how Madcatz went about their PCB construction. I figured there was a ground plane (the common ground suggests this), but I wasn’t sure if there was a power plane. Well…there’s only one way to find out, start cutting away!

See those two shiny thin lines on the edges of the PCB? Those are GROUND planes, which makes this an easy process.

If for some god awful reason you somehow run out of ground traces to solder to, you can feel free to scrape solder mask from basically anywhere on the pad and you’ll expose a ground spot you can solder to.

After the cutting, it’s time to connect the data wires to the buttons. The only thing I did differently was piggyback my directionals on the fight pad instead of the cthulu to make wire routing….a little easier.

I cut away the corners of the cthulu to make the A-H, 1-9 section of connections sit as close as possible to the edge… why did I do that? This next shot shows the PIC chip just BARELY fitting on the side of the pad’s resonator.

Can’t forget the Imp, I cut it into a D shape, it fits pretty snug.. but it works.

LED/Button Wiring

I mapped out the wires coming from the button PCB’s, as well as drew up what I wanted to do for the LED wiring.

The buttons are the standard type you’ve seen in all controller PCB’s, however… take a close look at the joystick traces.

Those are wipers, meaning whoever designed this, made it so that you could have a level of push.. ala analog sticks. The long trace under them is the common spot, so that’s our ground.

However… we don’t give a shit about level of push for fighting games, so the 3 data lines on each side will simply be tied together.

Again: (1,2,3) are tied together, and (5,6,7) are tied together. 4 is ground.

For the “top” section, basically there’s ground, vcc, data, and the “-” side of the diode, each having a wire corresponding to it. We will be connecting the data line of the button to the negative side of the diode.

There’s a catch, we need to add resistors so that the diode’s don’t blow up. Doing some quick math here’s what you need for these radio shack diodes:

(5v – 3.2v)/20mA = 90Ohms (I rounded up and used 100Ohm resistors)

Technically I should’ve gone lower, because 5v is ideal.. and there’s a .2V drop from the blocking diodes on the cthulu to add into the equation. However, I thought of that afterwards..and thus stuck with 100Ohms. :sweat:

Here’s the wiring diagram, and resistors in place. I started on the right one..and you can kind of see I got better at it as I went along to the left :rofl:

Instead of connecting wires at the ends, I simply made jumpers between the traces. It’s a tad ugly, but it works.

The next step is the big button’s wiring, it’s the same idea, however the traces where the button actually presses aren’t directional at all, so you can choose which one is data and which is ground.

Now we mount the LED’s into the port holes I showed you earlier. Using a dab of hot glue, I held the LEDs in place, and coated the exposed wires/resistors so nothing accidentally touches.

To make sure everything works like expected, I pull out the proto-board and plug things in:

SUCCESS!!!

Finalization

Now that everything is prepped (told you a majority of this project is prep work), it’s time to connect everything together.

Just kidding, there’s actually a little bit more, lol.

The last bit of prep is simply covering the screw holes with a bit of electrical tape.

What’s not simple is screwing down the black ring. We do this because when we removed all the guts of the vsmile, the part that holds things together went with it… we’re just replacing it.

Now we can wire everything together:

Imp board first. I cannibalized the USB cable that came with the fightpad, and cut it so that it would fit into the Vsmile’s notch. Before connecting the two PCBs to the Imp, I wanted to make things easy on me and attach the USB cable first:

I found the magic of a heat gun when using shrink wrap, it’s so much NICER than electrical tape.

I connected the fightpad to the cthulu’s end row header, wire managed, then routed all the vsmile’s buttons to the cthulu, then wire managed some more:

Joystick data lines tied together and spliced with the fightpad’s data line:

Now put everything together, and….

Minor mishap….

While putting everything together, I managed to drive a screw through my Imp’s guide button wire. So when I plugged it in for the first time I got a little scared as to why it wouldn’t switch consoles. I opened it back up and found this:

Can’t plan for everything, even if you try really hard to.

I spliced the wire, rerouted..and used a little bit more electrical tape to hold things together.

Being a little more careful this time, I screwed everything down, and folded the top part over onto the bottom part, slightly adjusting until the two boards meshed like they were tetris pieces.

After that’s all done, do the same for the joystick section, then screw everything together. You now have a dual modded Vtech Vsmile joystick, with extra LEDs for the gigantic button in the center.

Thanks for reading! I apologize if something wasn’t clear. Like I said, a lot of this was doing something…realizing a tweak needed to happen, then tried again.

Button Check Video:

A few mods for some locals

Hey again, it’s been a while since I’ve posted but ever since I finished the TEasy Mod, I’ve been rather busy getting organized.

I still get asked to do mods by locals, and here’s a few. The first one is for my friend d0x, who wanted his Comic-Con PS3 TE dual modded.


Same set up as always

1 x Madcatz Xbox 360 Fightpad
1 x Imp board

Switches via control panel switch, RS = 36o, DP/LS = PS3

The next mod wasn’t terribly complex, but it was the first time I’ve dealt with Dreamcast Agetec sticks. He wanted me to make his twin Agetecs work on PSx as well as DC…no problem. Overall they’re nice to work with, the PCB is pretty damn easy to work with. However, the one gripe that I have is that whoever designed the PCB did a piss poor job at using thermals for their through hole spots. Heating up the ground pins enough to solder a wire to was really quite difficult, since the ground plane just acted like a gigantic heat sink.

This first one wasn’t bad, the PSX pad was an early version A type dual shock. Super easy to mod with. This wasn’t an untouched stick though, someone had popped in a JLF and sanwa buttons, and you can tell they didn’t plan ahead when splicing in the JLF. The terminal block that was already there was cut in too close to the PCB for my liking.

The second one was a gigantic pain in the ass.

The pad he supplied me with was a late version A type, which utilizes a flex cable for the tactile buttons. Instead of soldering to scraped traces, you have to solder to the other side of the flex cable connector, which is kind of a challenge since it’s got rather small points.


I ran into a bunch of problems. It went smoothly at first, but after fiddling mounting this thing in the case for 20 minutes I finally got to test it. Turns out I had a slight wiring issue and had to re-do it. Then, after unmounting it, changing the wires, and remounting it I found I had a short between R1 and R2…awesome.

So I finally fixed that up, then zip tied everything tight and closed it up once and for all. Now both sticks work on PSx as well as DC. I think I went through about 25 zip ties with this one, luckily they’re cheap.

Return top

Announcements

Hope everyone had a good time at EVO. I know I did!