Introduction: Assemble a Universal PCB

The Universal PCB (UPCB for short) project was started to allow a single game controller, especially fighting sticks, on as many different consoles as possible. Information about the project can be found on the following thread in the Shoryuken.com forums: Shoryuken.com

This instructable helps guide you through the process of assembling a UPCB. I will cover the options available to you at each point, and tell you how they will affect the construction of the UPCB and the installation in your arcade stick.

This instructable will not be covering the creation of UPCB cables, stick installation, PIC programming, or UPCB development. Please look to see if there are other instructables that will cover these topics for you. All of these topics will be discussed only in helping you decide which options to take.

The first few pages will ask a number of questions to determine what Options you want. After we've gone over all of the options, we'll dive right into the construction of the UPCB that everyone will need to do, and then specific pages for different options. Please do not let the number of choices scare you off; I am just trying to be thorough. If you dont know or understand the option, just go with the suggested.

Step 1: Requirements and Button Terminology

The absolute minimum requirements for using a UPCB are 6 play buttons, a 4 or 8 way stick, and two buttons for start and select. These are fairly universal and should not come as a suprise to anyone.

Each one of these inputs are labelled throughout the code. Start and Select are pretty self-explanatory to anyone who has used a game controller since the NES. Up, Down, Left, and Right refer to the 4 directions used by your stick. The six buttons are all named, but for some it may take a while to get used to the names. The six buttons are expected to be in two rows of three buttons each; classic Street Fighter style. Some may prefer a Japanese layout over the American, but it make's no difference for the UPCB. If you decide to deviate from a two row by three column layout, please remember it is unsupported.

The top row buttons, from left to right, are Jab, Strong, and Fierce.
The botton row buttons, from left to right, are Short, Forward, and Roundhouse.

To help those that are unfamiliar with the button naming scheme, please use your mouse on the image below to see their proper labels for each button.

Step 2: Optional Extras

Now we neeed to decide on what sort of options you want over and above those 6+2 buttons and stick.

If that is all you require, then great. Some people want more.

One option with the current PCB is for a Power LED. An LED can be installed on your stick, or even directly onto the UPCB itself, and will glow whenever the stick is getting power (i.e. it's connected to a console). We'll call this is "Power LED option". Other than about 20mA of extra power draw, this option has no affect on the operation of the UPCB. Take it or leave it as you like.

The second option is for an additional button, reserved specifically for UPCB settings and options. It's a button that is not connected to the game console at all, and would normally be used for such things as recording and playback of programmed moves. We'll call this the 'Programming Button Option'. As of this writing, the Programming Button Option has not been implemented in the UPCB source code, but is expected soon.

There are two I/O lines left, and they are usually treated as a pair. These two lines can be used for inputs using a button, or outputs using LEDs. If the main 6 buttons are enough for you, and you like flashy lights, then go with the 'Extra 2 LEDs Option'. If you'd rather have the two additional buttons be for play next to the six main play buttons, go with the 'Extra 2 button Option'. If you don't really care for extra LEDs or extra Buttons, just ignore them both.

Keep in mind or write down which options, if any, you want to incorporate when you build the UPCB.



Step 3: Connection Options

The previous page dealt with 'Things you want to have'. This page deals with 'How you want to hook things up'.

Unlike the previous page, I will be providing suggestions about what I feel the best choices are.

The first and easiest is whether or not you want to use the UPCB inside of a controller, or whether you want to use it outside of a case like a NeoGeo to Whatever converter. If you want to go with the 'NeoGeo Converter Option', you will be able to plug in a NeoGeo AES controller, such as 'old style' stick, 'new style' stick, or NeoCD gamepad, directly into the UPCB, and use it on any supported console. This is extremely rare, and chances are you do not want this option. If you do, you don't need to worry about anything else on this page.

The next decision is about your stick. You can use either a six pin connector to attach your stick, or you can use a 8 pin ribbon connector. The 6 pin connector has one line for each direction, plus power and ground. The 8 pin ribbon connector has 4 pair of wires, each pair being one direction and ground. If the stick you want to use has 4 separate, unconnected microswitches, like the Happ Competition, Happ Super, or Sanwa JLW, the 'Ten Pin Stick Connector Option' will require the least amount of work to use. (They do not make 8 pin IDC connectors, so we'll use a 10 pin one, and only use 8 of the pins.) If the stick you want to use has a connection for each direction and one for ground, such as the Sanwa JLF, Sanwa Flash, or Happ Perfect 360, go with the 'Six Pin Stick Connector Option'. Most people will want the 'Six Pin Stick Connector Option'.

Next is the 'ICSP Option'. ICSP stands for 'In Circuit Serial Programming'. It is a way to connect the PIC to a programmer or debugger while it is in the actual circuit. This option is recommended. If your PIC suffers from a bad flash when trying to upgrade it via USB, you would have to remove the chip entirely and put it in a programmer for reprogramming. On a 40 pin PIC, this is a pain. The part needed is small and cheap. Even if you do not expect to ever have to reprogram the PIC from scratch, it won't hurt to put it in. But, as long as someone else does the original programming of the PIC bootloader for you, and you never get a bad flash, this is not required.

Last is the 'Piggyback Option'. For consoles the UPCB doesn't support yet, the UPCB allows you to connect up to two PCB's from hacked game controllers and use them along with the UPCB. If you are sure you will never need this option, then ignore it. If you are unsure if you might want to do this in the future, it is recommended you go ahead and say yes to this option. The parts are under $2, and you will be very glad you put them in if you do decide to use them.

Step 4: Gather Up All Tools

Since you will be soldering, the tools you will be using should not be a surprise.
- Soldering Iron
- Solder
- Wire cutters
- Multimeter

Tools that are extremely helpful.
- Flux
- Desoldering braid
- Desoldering pump
- 'Helping Hands'

Step 5: Collect All Required Parts

Make sure to check the next page as well, which goes over the Optional parts of the UPCB. This page has all of the parts that everyone will need, but next page may have parts you still need. Also hit page 7 for suggestions and tips to make installation easier and cheaper.

The following are parts you MUST have, along with the quantity and Digikey Part Number:
15x 4.7K Ohm resistors: Digikey # 4.7KQBK-ND
2x 22 Ohm resistors: Digikey # 22QBK-ND
1x 1M Ohm resistor: Digikey # 1.0MQBK-ND
1x 20 MHz crystal : Digikey # X439-ND
2x 0.1uF ceramic capacitors : Digikey # 490-3859-ND
2x 15pF ceremic capacitors : Digikey # 490-3629-ND
1x 33uF electrolytic capacitor : Digikey #P13129-ND
1x 470nF electrolytic capacitor: Digikey # P13466-ND
1x 40 pin DIP IC socket (0.6" width) : Digikey # ED90059-ND
1x Microchip PIC brand 18LF4550 - I/P DIP PIC : Digikey # PIC18LF4550-I/P-ND
1x PTC resettable fuse : Digikey # RXEF040-ND

Step 6: Collect Optional Parts

These parts are grouped by the options you've decided on. Please go through the list and add these to your shopping list.

Needed for the 'NeoGeo Converter Option':
1x Male DB-15 : Digikey # 215ME-ND
1x Female DB-15 : Digikey# 215FE-ND

Needed by everyone NOT using the 'NeoGeo Converter Option':
2x 16 pin IDC ribbon connector male: Digikey# HRP16H-ND
2x 16 pin IDC ribbon connector female:Digikey# HKR16H-ND
1x Female DB-15 : Digikey# 215FE-ND
1x Ribbon cable for IDC connectors: Digikey# MC16G-5-ND
(If you to spend a little more to look cooler, you can use part number MC16M-5-ND instead, which is a multicolored ribbon cable instead of the plain grey one.)

Needed for the 'Six Pin Stick Connector Option':
1x 6 pin Molex KK header : Digikey# WM4204-ND
1x 6 pin Molex KK connector: Digikey# WM2004-ND
6x Molex KK crimp pins: Digikey# WM1114-ND

Needed for the 'Ten Pin Stick Connector Option':
1x 10 pin IDC ribbon connector male: Digikey# HRP10H-ND
1x 10 pin IDC ribbon connector female: Digikey# HKR10H-ND

Needed for the 'Piggyback Option':
1x 14 pin IC Socket: Digikey# ED3114-ND
1x 4066N analog switch IC: Digikey# 296-8329-5-ND
2x 16 pin IDC ribbon connector male: Digikey# HRP16H-ND
2x 16 pin IDC ribbon connector female:Digikey# HKR16H-ND

Needed for the 'Extra 2 LED Option':
2x 220 Ohm resistors: Digikey # 220QBK-ND

Needed for the 'Power LED Option':
1x 220 Ohm resistors: Digikey # 220QBK-ND

Needed for the 'Extra 2 Buttons Option':
2x 4.7KOhm resistors: Digikey # 4.7KQBK-ND

Needed for the 'Extra BiColor LED Option':
2x 100 Ohm Resistors: Digikey # 100QBK-ND

Needed for the 'ICSP Option':
1x 6 pin Molex KK header : Digikey# WM4204-ND

(No additional parts needed for the 'Programming Button Option')

Step 7: Kit Contents

If you've purchased a UPCB kit, below is a picture of what is included. All of the optional parts are included; just add a PIC and assemble.

Step 8: The Cheap Way

There are ways that assembling a UPCB can be made cheaper. I will detail the ones I know as best I can.

The PIC itself is easily the most expensive part. You can sign up for an account on Microchip.com and order samples of this part. If sampling isn't an option, you can order it separately from Newark for a significantly lower price than Digikey.

Digikey's prices on ribbon cables seems a bit high in my mind. The type of ribbon cable we are using is very standard, and you probably have some in your closet, or available for pocket change in an old computer store. The ribbon cable is the exact same kind used by floppy drives and 40 pin IDE cables.

The output was designed to be a DB-15 female port for a couple of good reasons. One of them is that it is the same port used as a game port on PCs. A number of motherboard manufacturers do not put the game port on the motherboard itself, but rather include a piece that goes into an expansion slot with a game port on it, and a ribbon cable connecting it to a header on the motherboard. These can be found in a lot of good computer parts store for very cheap. The ones pictured below were bought for 50 cents each at a local store.

In the Revision 1.0 PCB, there is a defect in the header that this 15 pin ribbon cable would connect to that will cause the chip to malfunction, overheat, and possibly destroy the PIC. Please check the Installation Instructable for more information on how to modify the cable to work properly. If you have a board after the 1.0 revision, don't worry about, just use the cable as-is, the PCB problem was corrected.

Step 9: Assembly - 40 Pin IC Socket

There are a number of components placed very close to the main IC socket, so we will make sure to put it in first. Slighlty nudging a resistor to rest next to a socket is easy when the socket is soldered and the resistor is not. It's a nightmare the other way around.

The IC socket has an indentation on one end, to mark which way the chip should be inserted. The white screenprint of the IC has a matching indentation. Make sure that these ends are together.

Solder only one corner leg of the IC socket at first. Once it has cooled, take a look at the socket from the side. You want to make sure the socket is resting fully on the PCB. If it isn't, melt the solder on that one leg, squeeze the board and socket together, let the solder cool, and check again. Once it is resting as flat against the PCB as it can be, solder the one leg in the opposite corner, and check again. If there is any space between the socket and board, fix it now.

Once both corner pins have been soldered, and the socket checked for proper placement, start soldering each and every one of the 40 pins. Some people try to go fast and use too much solder. Don't be that guy. Take your time, and do each pin right, making certain that the solder from each leg is not jumpering over to another leg, or a nearby via.

Step 10: Required Assembly: Pull Up Resistors

The image below showes the silkscreening used for all pull-up resistors.

The resistors we will be using for this step are the 4.7K Ohm ones, Yellow-Purple-Red. There are a few places on the UPCB that look similiar, but have writing in them, such as '22', '1M', and 'OPT'. We are NOT using those yet. This step in only for the unmarked plain pull up resistors.

If you count on the board, you should see fifteen such places.

Pick one to start with. Take one of the pull up resistors and bend the legs so they will go through the appropriate holes. Resistors have no orientation, and can be used facing either direction. Fit the resistor so it lies flat against the board, and bend the legs on the other side to it stays put. Solder the two connections, and cut off the excess legs. Repeat until all pull up resistors have been placed.

The excess legs we cut off will be used later on, so please save a few.

Step 11: Required Assembly: Numbered Resistors

Now we will place and solder the three numbers resistors on the UPCB.

The two labelled '22' require a 22 Ohm resistor. Using the same steps as the pull up resistors, bend the resistor, insert it through the holes so the resistor lays flat against the board, bend the legs to secure in place, solder, and trim the extra legs.

The last numbered resistor is '1M', requiring a 1 Mega Ohm resistor. Repeat the same steps as above using the appropriate resistor.

Step 12: Required Assembly: Jumper Points

Now that you have your workspace covered with about 36 small pieces of wire removed from the resistors, we are going to put some of them to use. In the picture of the UPCB below, I have labeled the three points we are going to jumper with wires.

The two points marked 'VCC TEST' and 'GND TEST' are simply points set aside for troubleshooting. When testing a board, it is very handy to have convienent locations to connect your tools for the power and ground. We will run some tests in the next step that use them, so let's get them ready.

Take one of the discarded legs, and bend it in a loose 'U' shape. Insert the two ends into both holes of the 'VCC TEST' location. Unlike the resistors before, we do NOT want the wire flat against the board. We want to leave a little loop that an alligator clip or hook probe can latch on to securely. We don't want it sticking out so far it will bend and touch other components. Use your best judgement, and when it is at the height you want, bend the legs to secure it in place, and solder it. Trim off any excess wire, and repeat with the 'GND TEST' point.

The third point is not well identified on the UPCB silkscreen, but marked in the upper left of the picture below. All power from the console must first past through there. Take one of the discarded legs, place it through the two holes and lay as flat as possible. You do NOT want this touching any other components, and you do not need to leave a loop like you did with the test points. Bend the legs in place to secure, solder in place, and trim off any excess wire.

In the picture below, you can see the two test points I made, along with a hook probe hanging onto one. You can also see a jumper on two pins where you made the last jumper connection. This gives me a place to interupt the power to the UPCB, and place a multimeter in the way so I can measure the amperage of the board when needed. If you understand what that means, this is an option you can do as well, but I expect most people will just jumper the board and forget about it.

Step 13: Testing Part 1

Now we are going to take a moment to check the work we've done so far. The test point wires we made in the previous section will help this go by quickly.

If you have a way of securing one of your multimeter probes, such as a hook probe or alligator clip, go ahead and attach it to the VCC TEST point. Otherwise, you will require both hands for this testing.

First we test all 15 pull up resistors. Set your multimeter to a resistance setting greater than 5K Ohms ; on mine, the setting is 20K. With one probe on the VCC TEST point, check each on of the IC socket pins colored red in the image below. That would be pins 1, 6, 15, 16, 17, 19, 20, 21, 22, 27, 28, 29, 30, 37, and 38 . At each point, the resistance should show a value near 4.7K Ohms. The exact value isn't of much important, as long as it is more than 3K Ohms, and less than 6K Ohms. Each one of these you test verifies the soldering on the IC socket at that pin, as well as both pins of the resistor itself. If the test shows infinite resistance, one of those three solder points is cold, somehow disconnected, or your multimeter's resistance(Ohm) setting is less than 4.7k . Fix it before continuing. If any of them show almost 0 resistance, then either the resistance setting on your multimeter is way too high, or you have accidentally shorted that line to VCC before the resistor; check and redo any messy soldering points, making sure not to accidentally short against another pin or a via.

Congratulations, with a simple test, you just verified 45 different soldering points in less than a minute.

Next we will test the yellow points shown on the PCB. Remove the probe on the VCC TEST point. We will need it elsewhere. Set your multimeter to a setting greater than 1 Mega Ohm; on mine, the setting is 2M Ohm. Place one probe on each of the yellow pins. The resistance should read roughly 1 Mega Ohm. If so, you have successfully tested the soldering on those two IC socket pins, as well as both pins on the 1M resistor. If it fails, verify your multimeter is set greater than 1M Ohm, and check those for solder points.

Next, set your multimeter to the lowest setting great than 22 Ohms; on mine, that is 200 Ohms. Place a probe on each of the purple IC socket pins in the picture below. Resistance should read roughly 22 Ohm. If it fails, check the solder points of the purple IC pins, and the solder points of the left-most '22' resistor.

Lastly, keep your multimeter on the lowest setting great than 22 Ohms; on mine, that is 200 Ohms. Place a probe on each of the blue IC socket pins in the picture below. Resistance should read roughly 22 Ohm. If it fails, check the solder points of the blue IC pins, and the solder points of the right-most '22' resistor.

Congratulations, you just verified 59 different soldering points. Let's continue.


Step 14: Required Assembly: Ceramic Capacitors

In this step, we will place and solder all four ceramic capacitors. The ceramic capacitors are pretty small, and flat; to dont confuse these with the electrolytic capacitors, which are can shaped and made of metal. We will deal with those later.

Ceramic capacitors, like resistors, do NOT have an orientation. You can insert them either way.

Please take a moment to look at the first image for this page. Capacitors have only two legs, yet there are three holes for each capacitor. This is actually to make things easier for you; capacitors come in all shapes and sizes. Some of them have their legs very close together, and others are farther apart. These holes will accomodate both. You will see a pair of parallel lines in the silkscreen; this is the symbol for a capacitor. There will be one hole on one side of that symbol, and two holes on the other. The one hole by itself MUST be used for one of the capacitor legs. The other capacitor leg can be used in either of the other two holes. If you are using the Digikey parts for these capacitors given in the beginning, you will likely find that the 15pF capacitors lay best in the closest hole, while the 0.1uF capacitors lay best in the farthest hole.

The two capacitor markings that have a '15' written above them, right next to the 1M ohm resistor we recently placed, are the holes for the 15pF capacitors. The ones ordered from Digikey have the writing '153' on them, although yours may differ if bought elsewhere. Place them so they comfortably stand up; we do not want these to get in the way of the crystal we will be installing soon. There is no need to make sure they are all the way or otherwise force it. Bend the legs so they are secure, solder, and trim off any excess wire.

The two capacitor marking that do NOT have the '15' written above it are the .1uF capacitors. You will find both of these next to the IC socket, where they help clean up the power the PIC uses. 0.1uF capacitors usualy have the marking '104' written on them. Place them in the remaining spots so they stand, bend the legs to secure, solder, and trim any excess wire.

Sadly, most multimeters do not have the ability to test for capacitance. There is no real easy way to test the work done in this step, so please make sure to do it as best you can. If the 0.1uF capacitors aren't working, the PIC will run very unstable, and be somewhere between annoying and useless. If the 15pF capacitors aren't working, the PIC will likely not run at all because it wont get a solid signal from the crystal that controls its speed.

Step 15: Required Assembly: Crystal

The next component to place is the 20 MHz crystal. Like the capacitors we just placed, there is no easy way to test that we soldered these properly, so take your time and do it right.

Like the resistors and ceramic capactors, there is no orientation. Just put the crystal in the holes.

The crystals come in a metal casing with two pins to solder. I am of the personal opinion that bending these legs is bad; knowing how much the PIC relies on the crystal timing to operate, you should try your best to solder the crystal cleanly and securely. The crystal legs should go through the holes without any resistance or bending needed. Doing your best to hold it in place, solder only one leg, and then check the crystal to make sure it is flat against the board. If it isn't flat, melt the solder, adjust, and let the solder cool. Check again until it is flat. Once it is properly placed, solder the other leg and recheck. If the crystal is flat and the soldering is good, trim the excess wire.

Step 16: Required Assembly: PTC Fuse

PTC stands for 'positive tempoerature coefficient'. The idea is that if too much current goes through the PTC, the temperature goes up, causing it to increase in resistance, even to the point of infinite resistance. It acts like a circuit breaker; if there is too much current going through, the PTC gets hot and disconnects the circuit until such time at the PTC has had time to cool off. Because it cools off, it is a circuit breaker that resets itself if it has has a minute or so to cool off. Protects components, doesn't permanently blow up, and requires nothing more than a little time to reset itself. Very nice to have.

All current powering the board goes through the PTC; as such, it will protect the board, but doesn't protect things outside of the board. If you make a short circuit in the console cable attached to it, the UPCB itself will probably be fine, but you're console is in trouble and will probably blow a fuse. That's why there are so many steps for testing a cable in the other instructable.

The PTC part recommended from Digikey has little bends in the legs. Because the PTC is susceptible to heat, you don't want it right next to a hot soldering iron. Those bends keep it a distance off of the board, making it one of the tallest components.

The PTC does not have an orientation, and can be inserted either way and still work.

Place the PTC into the holes so it rests on the leg bends. Bend the legs on the bottom of the board to secure it in place, solder, and trim off any excess wire from underneath. For now, have the PTC stand straight up. The legs are both connected to the main power coming to the board. You absolutely do NOT want any components touching or near those legs.

Step 17: Testing Part 2

Now we'll take a quick break from soldering for one simple test.

Set your multimeter to check for resistance, and set it to your lowest setting. Connect one probe to the VCC TEST wire, and place the other on the upper-most pad on the left hand edge, top side of the board. The pad we want is colored in red in the picture below.

All power coming to the UPCB comes through that pad, through the PTC, and through the jumper, before going to anyplace else on the board. By doing this test, we can confirm that the PTC fuse and power jumper have been properly soldered.

If the resistance is near 0, you are successfull. If it is near infinite resistance, you have a loose solder connection, either on one of the PTC legs, or one of the power jumper legs. Fix any problem, and continue.

Step 18: Required Assembly: Electrolytic Capacitors

Electrolytic capacitors, unlike ceramic ones, DO have a polarity. Each pin is supposed to go into a specific hole.

Aluminum can electrolytic capacitors use markings to indicate which of the two pins is the 'negative' pin. Usually this marking is a grey stripe, sometimes with arrows or minus symbols pointing at the pin. Tantalum electrolytic capacitors use a + sign to mark the positive pin. Before placing the electrolytic capacitors, you must be able to know which is the negative pin. The one that is not negative, is of course positive.

The markings on the silkscreen use a 'plus sign' to indicate which pin is positive. Yes, the symbol marks the positive leg, while the capacitor itself on the aluminum capacitors marks the negative leg. I don't know why it is that way, it just is. But looking at the capacitor will tell you which leg is which, and looking at the silk screen symbol will tell you which leg goes where. Just make sure the pin on the capacitor marked negative is NOT the one going into the hole marked positive, and you'll be fine.

The legs are rather close together on the capacitor, meaning it won't set all the way down, but will be about 1mm above the board. This is normal. Do not force it.

Start with the capacitor marked .47uF. For those that know their metric system, you should know that .47 uF is the same as 470nF. If you have a tantalum capacitor, you'll see the markings of '474' . Place it in the holes marked with '470nF' next to the crystal, double checking that the negative pin is NOT in the hole marked with a plus sign on the board. Set it down properly, bend the legs to secure it in place, solder, and trim off any excess wire.

The other electrolytic capacitor is marked '33uF' on both the capacitor and the silkscreen. Place it in the holes marked with '33uF' between the X360 and DC connector on the opposite side of the board. Double checking that the pin marked negative on the capacitor is NOT in the whole marked with a plus sign on the board. Set it down properly, bend the legs to secure it in place, solder, and trim off any excess wire.

Unless you have the ability to test capacitance, there is not an easy way to test these parts. Please take your time and solder them with care.

Take a look at the work you've done so far. The board may still look bare, but you have just completed all of the required assembly. Everything after this is simple a matter of what options you want to use.

Step 19: Optional Assembly: NeoGeo Converter Option

This step is for the 'NeoGeo Converter Option'. If you are not planning on using the UPCB as a NeoGeo converter (you are going to install the UPCB into an arcade stick), skip this step.

The NeoGeo controllers use a connector that is compatible with the DB-15 standard connectors. We will be taking advantage of that by installing a male DB-15 connector on the right hand side of the board for you to plug your NeoGeo controller into, and installing a female DB-15 connector on the left hand side for you to connect a UPCB console cable to. You will be able to use your NeoGeo controller on any system supported by the UPCB.

Both of these DB-15 connectors will be soldered directly to the UPCB. Pads on both sides have been used to allow this. The thickness of the UPCB should be prefect for a DB-15 connector to snugly fit over, and the pads were desined to line up perfectly on both sides.

One half of each connector has 8 pins, while the other half has 7. Make sure the wider half, the half with 8 pins, is on TOP.

Start with the female connector. Just we are perfectly clear on which is which, check the pictures below. If the connector has a bunch of metal pins in it, it is male. If it has a bunch of holes for those pins to go into, it is female.

Take the female connector and slide the left edge of the pcb between the solder cups. It may fit fine the first time, or you may need to nudge it a little. Either way, you can line up the solder cups over the pads on the PCB perfectly. Check the bottom as well; they should line up perfectly as well. If you see an extra pad on the top, you have the connector upside-down.

Take your soldering iron, and heat up both the solder cup of the top most connector pin, and the UPCB pad we will be connecting it to. We don't care about solder that goes in the cup; it won't do anything. The only thing we care about is the solder connecting the solder cup of the connector to the UPCB pad underneath. Apply solder between the pad and the cup, then remove the iron and let the solder cool.

Check the connect to make sure it is fully against the pcb as far as it will go. If not, melt the solder, adjust the connector, and check again. Once you are certain the connector is properly seated, solder the bottom-most connector the same way. Check your work that it is seated flat against the edge of the UPCB. Once the connector is seated properly with two soldered connections, it won't move. Solder the remaining 13 cups to their respective pads, on both sides.

The male connector is done the same way. Solder the first cup to the pcb, make sure it is seated properly, solder the last cup, check seating again, and if all if good, solder all of the remaining cups to their pads.

The NeoGeo controller can be plugged into the male connector, the UPCB console cable can be plugged into the female connector, and all of a sudden you can use your old style stick to play on the SNES. Congratulations.

There are other options still available to you, although the largest ones (Piggybacking, and the stick/button connections) are not recommended. Putting in an ICSP connector would be a good idea, and LEDs are certainly possible. Please keep reading.

Step 20: Optional Assembly: ICSP Connector

This step is for those that want the 'ISCP Option'. This step is highly recommended, but not required.

ICSP stands for 'In Circuit Serial Programming' and is a way to program and debug the PIC without removing it from the UPCB. Even if you don't plan on programming or debuging the board with a PIC programmer or debugger, it is still highly recommended so you can easily recover from a bad flash.

The ICSP connector is a 6 pin male Molex KK type header. The header is keyed; the matching connector can only go in one way. It does this with a plastic wall on one edge. We need to make certain we install the ICSP connector facing the right direction. The side of the connector with the wall needs to be on the side the 'ICSP' letters are silk screened, what we've been calling the left side.

Installing the connector is pretty easy. The fit into the holes is a little snug, but it will fit. We do want the connector down against the board as far as it will go. Once it is in place, double check against the picture below that it is not inserted backwards.

Once you are sure it is in place correctly, solder one of the pins. Check again that the connector is all the way down against the board. If it isn't, melt the solder, adjust the connector all of the way against the board, and let it cool. Once you are sure the connector is in place snug against the board, solder the other 5 connections. There will not be a need to trim additional wires; they are already the perfect length.

Step 21: Optional Assembly: Power LED

This step is for those who want the 'Power LED Option'.

For those who want an LED to always be on as long as the UPCB gets powered, this option is for you. This is entirely optional, and aside from about 20mA more current draw, has no effect on how the UPCB works; it is entirely aesthetic, and completely optional.

If you are installing the UPCB in a stick, you will have to install the LED on the stick however you think is best. I will not be covering this. If you are using the UPCB as a NeoGeo converter, you can install the LED directly on the UPCB. For the pictures below, that is exactly what I did.

I learned two lessons when using this option with my first UPCB. First, the LED and resistor should be tested to find the best fit for the resistance. Second, that blue LEDs are BRIGHT. The 220 Ohm resistor is perfect for your average red or green LEDs. For the blue LED I tried, it was way too bright. I don't recall if that LED was a 'low power' version that lit bright with normal LED amperages. Maybe all blue LEDs are that bright. The point is, if you have the ability, test the LED and resistor with a +5v power source. 220 Ohm is a good starting point. Feel free to test with higher resistance resistors if you feel the brightness should be lower, and visa versa. If you dont have the ability to try it out with a +5v source, then go with the 220 Ohm recommended. Maybe go ahead and try a 330 Ohm if you are using blues though.

The value of the resistor is 220 Ohm, which for most LEDs, means about 20mA will flow through the LED. For most LEDs, this is plenty. I am personally using a blue 5mm LED in the pictures below. Blue LEDs require more power than most common colors, like red and green, so this value should be good for a single LED of any color. Trying to run a full compliment of multiple LEDs in a disco fashion is not recommended; it may require so much juice the PTC or console's fuse may pop. But feel free to experiment, as long as it isn't on any of my personal equipment.

The resistor marked 'OPT1' is the resistor for the power LED. Just as before, bend the legs, insert into the holes, lay the resistor down flat, bend the legs to secure in place, solder, and trim any extra leg wire. After having done at least 18 of them, I hope you have the hang of it by now.

LEDs do have a polarity. There will be one side of the LED that is flat. The leg on that side goes to ground. Make certain to find out which leg is supposed to go to ground, and solder it to the hole marked 'GND', closest to the hole marked 'PLED'. The other wire of the LED should be wired to the 'PLED' hole.

If you are installing the LED directly to the board, the spacing between the 'GND' and 'PLED' holes is perfect for a regular 5mm LED to go into. Find the leg on the flat side of the led, and put it into the 'GND' hole, with the other leg going through the 'PLED' hole.

Step 22: Optional Assembly: 2 Status LEDs

This is an optional step for those who want the '2 Status LEDs Option'
Using this option means that you cannot have the '2 Extra Buttons Option' but is not required. If you do not want the '2 Extra Buttons Option' or the '2 Satus LEDs Option', you can just ignore the optional resistors OPT2 through OPT5, and everything in the corner dealing with RA0 and RA1.

Using this option will use ONLY OPT2 and OPT5 resistor points. Do NOT use OPT3 or OPT4 for ANY resistor or jumper. Leave 'em be!

As with the optional Power LED, I will not be covering how to install the LEDs into your stick, only how to wire them up.

When the PIC wants to turn on one of the optional LEDs, it does so by setting the line (one of RA1 or RA0) to high. This provides the voltage needed to power the LEDs. What we need to do is put a resistor in the way, so enough energy gets past to light the LED, but no more. After the resistor, the power goes to the positive leg of the LED, lighting it up, and then out the negative leg to ground.

If your LED is being installed in a case, it is very important to find out which leg is the positive leg, and which is the negative. LEDs normally have a flat indentation on one side, marking the negative leg. If your LED is make for mounting in a panel or case, you may not be able to see this indent. Make certain you know which leg is which before wiring. If it is installed backwards, it will not damage anything (at the voltages we will be using), but it definitely won't work.

First we'll start with installing the resistors. Both of the resistors we will use are 220 Ohm (Red-Red-Brown). One will need to be placed in the position marked OPT2 and the other in OPT5. Just like every other resistor, there is no orientation to worry about. Bend the legs, feed them through the holes, lay the resistor down flat against the board, bend the legs at the bottom to secure them in place, solder, and trim the excess wires.

The points marked 'RA0' and 'RA1' are the points after the resistor for LED 1 and LED 2, respectively. If the LEDs are mounted on your case, solder a wire to these points, and connect it to the positive leg of the respective LED. The negative leg of each LED must connect to ground. The points marked GND next to the RA0 and RA1 points are provided for convienence, but any connection to ground will work, including the common line for your buttons and stick.

If you are using this option with the 'NeoGeo Converter Option', like I am doing in the pictures below, you are free to solder the LEDs directly to those holes and the GND holes behind them. The holes are VERY close together (100 mils), so fitting two 5mm LEDs is not possible. You must use thinner LED's like the rectangular versions. The LEDs shown in the picture were a free gift with an order from DipMicro.com; I do not have a part number for them. It might be possible to fit two 3mm LED's together in these holes, but I have not tried.

Step 23: Optional Assembly: 2 Extra Buttons

This optional step is for those who want to use the '2 Extra Buttons Option'. This will give you two additional play buttons, for a total of 8 (not including Start + Select). This option is mutually exclusive with the '2 Status LEDs Option'; you can pick one if you like, but don't use both. If you don't want to use the option for additional buttons, you can ignore this altogether.

First, we need two 4.7K Ohm resistors. Bend the legs, and place one through the holes for the resistor marked OPT3, and the other resistor through the holes for OPT4. Lay the resistors down as flat against the board as you can, and bend the legs to secure it in place. Solder the four points, and trim off any excess wire. Keep the pieces you trim off; we'll need them next.

Next, we need to jumper the resistor points marked OPT2 and OPT5. We do not need any kind of resistor here, we need to connect them together with the pieces of extra wire you trimmed off previously. Bend the wire to insert into the holes in the OPT2 spot. Insert, and rest it as flat against the board as you can, making sure it doesn't touch any other components. Bend the legs to secure it in place, and solder. Trim off any extra wire. Repeat with a piece of wire in the spot marked OPT5.

The two additional buttons will use the RA0 and RA1 lines. We just tied them to high with a pull up resistor, and you will need to connect the RA0 and RA1 lines in the corner of the UPCB to your two extra buttons. The other legs of the buttons must connect to ground; you can use the ground pins right next to the RA0 and RA1 points, but these are just a convienence. Any ground connection will do.

Step 24: Optional Assembly: Programming Button Option

This is an optional step for those wanting the 'Programming Button Option'.

Note: This 'Programming Button Option' is solely for the recording and playback of moves, combos, and other inputs, just as if you have pressed them yourself again. This has nothing to do with the programming of the PIC microcontroller. If recording and playback of moves holds no interest for you, this step can be safely skipped entirely.


No additional hardware is needed for this. The pull up resistor for this button has already been placed. All you need to do is wire the button.

Just like every other button used by the UPCB, the button's line is tied to high with a pull up resistor. That line goes to one leg of a button. The other leg of the button goes to ground. When the button is pressed, the PIC sees that the line has been connected to ground, and acts accordingly.

The programming button is RB5. You'll see a hole marked 'RB5' in the lower left. Solder a wire to that hole, and connect it to your programming button. The other leg of the switch should connect to ground. There are holes marked GND next to the RB5 hole that will do nicely, but this is just a matter of convienence. Any connection to ground will work.

In the pictures below, you will see how I did this on my NeoGeo converter option pcb. I used a pair of header pins; one soldered to the RB5 hole, and the other in the neighboring GND hole. If I use the jumper to connect them, it is the same as if I had pressed a pressed a button. If they aren't connected, it is the same as if I was not pressing the button.

Step 25: Optional Assembly: Output Header

This Option is for those who did NOT choose the "NeoGeo Converter Option'. Instead of soldering the output DB-15 connector directly to the board, we will be using a 16 pin IDC connector to attach the output DB-15 connector with a ribbon cable. This will allow you to mount the connector on your stick securely and be able to disconnect it when needed.

Please note that there is a mistake in the silk screen printing for this part. The box surrounding the part has a space that is open to should where the opening in the header should be. This is backwords. Make sure to check the pictures below and match the orientation before soldering.

The 16 pin IDC header should be oriented with the little key notch facing the middle of the board.

Insert the connector as far down into the board as possible in the spot marked 'Output to DB-15'. Solder one corner pin to the board, and check that it is laying flat. If the connector needs adjustment, melt the solder and adjust. Solder the opposite corner, and check again. Once the connector is properly set, go ahead and solder the other 14 pins.

Step 26: Optional Assembly: Sixteen Pin Button Connector

This option is for those who did NOT choose the NeoGeo Converter Option. The step will install a 16 pin IDC connector that will connect the 8 buttons via a ribbon connector. This step is completely optional. You can choose to solder the button wires directly to these holes if you wish, but using an IDC connector like this is much cleaner and makes any stick maintenence a ton easier.

The orientation of the header doesn't truly matter; you just need to be aware of which pins deal with which buttons. To make things easier for describing the installation, it is recommended that you orient it so the small key faces the center of the board like in the pictures below. The instructional for installing the UPCB into an arcade stick will assume this.

Install the IDC connector into the spot labelled with the names of buttons (SEL, STA, JAB, etc. THey are the first three letters of the button that goes to that pin). The connector will hang a small bit over the endge of the board; this is normal.

Solder one of the corner pins, and check the placement of the connector. The connector should rest as flat as possible against the board. If you need to adjust it, melt the solder on the corner and readjust. If it looks good, solder the opposite coner and repeat to make sure it is in place. If it looks good, solder the other 14 pins in place.

Step 27: Optional Assembly: Piggyback Option

This step covers the parts needed for using the Piggyback function of the UPCB. There are two 16 pin IDC connectors, and one 14 pin IC socket. This step is completely optional. For systems that the UPCB doesn't natively support, the Piggyback function allows you to connect a hacked controller from that system side-by-side with the UPCB, and use it as if it were natively supported. It is expected that the Dreamcast and Xbox360 will be the most commonly used consoles for Piggyback'ing.

Start with the IC socket. Just like the 40 pin socket we did in the beginning, there will be a notch on one end of the socket to mark the first pin. You will see a matching notch in the silk screen on the UPCB. Place the IC socket so that the notches match, and solder a single corner pin. Check to make sure the IC is lying flat. If the socket needs adjusting, melt the solder and adjust. If the socket looks good, solder the opposite corner and check again. Once the socket has two soldered pins and the socket is resting fully, go ahead and solder the other 12 pins.

Next we'll do the two 16 pin IDC connectors, into the spots labelled 'DC Connector' and 'X360 Connector'. The steps for both are identical. Place a 16 pin IDC connector into the spot marked, with the small key notch facing the inside of the UPCB. Solder one of the corner legs in place. Check to make sure the IDC connector is resting flat against the UPCB. If the conenctor needs adjustment, melt the solder and adjust. Once it has cooled, solder the opposite corner pin, and test again. Once the connector is flat against the board, and two pins are soldered, go ahead and solder the other 14 pins. Repeat for the other IDC connector.

Step 28: Optional Assembly: Six Pin Stick Connector

This step covers adding a six pin connector for your stick to connect to. There is no point in doing this if you went with the NeoGeo Converter. This is the recommended method of connecting your stick to the UPCB, but it is optional. The board was designed to also allow a 10 or 12 pin IDC connector, and you can always solder wires directly into the board. Using the Six Pin Stick Connector is the recommended choice when using a stick with a common ground line, such as the Happ Perfect 360, Sanwa Flash, and Sanwa JLF series sticks.

The six pin connector being used is a KK Molex connector, same as the ICSP header. The orientation doesn't truly matter, but you should follow the orientation shown in the picture below. In the Instructable on how to install the UPCB into a stick will assume this orientation.

In the location for the connector, you will see one letter labels marking the pins: V G D U R L. Respectively, they stand for VCC (power), Ground, Down, Up, Right and Left. The second row of pins are all connected to ground, and should not be used at all of using this connector. The connector is to be placed in the row closest to the V G D U R L markings.

Place the connector in the row of 6 holes closest to the V G D U R L silkscreen. Double-check that the orientation matches the photo below; this is the same orientation as the ICSP connector, if you have installed one. Solder one leg to the board, and then check that the connector is resting fully against the board. If it requires adjustment, melt the solder, and adjust until right. Once the solder has cooled, solder the opposite leg, and check or adjust as needed. Once it is perfect, solder the remaining legs.

Step 29: Optional Assembly: 10 Pin Stick Connector

This option is only for those who feel that an 8 pin ribbon connection is more suitable for their stick than the Six Pin Stick Connector Option. The only time I can recommend this type of stick connector is if your stick uses 4 separate microswitches, such as the Happ Competition, Happ Super, or Sanwa JLW series sticks. These sticks require two connections for each microswitch, which is made easier by using an 8 pin ribbon connector. You can split the ribbon directly into four separate pairs, one for each switch.

There are currently no pictures for this option.

Please a 10 pin IDC connector on the upper-most pins of the stick connector. You must make certain that connector pins go through the holes marked by the D U R L markings; any pins other than the first 8 will not be used. They simply do not make 8 pin IDC connectors to my knowledge.

The IDC connector will likely have a keyed notch in the middle just like the other IDC connectors used so far. So we stay with the IDC numbering convention, you will want the notch facing the middle of the UPCB.

Place the IDC connector on the UPCB, and solder one leg. Check the connector to make sure it lays flat against the board. If it requires adjustment, melt the solder on the leg and adjust. Once it looks flat, solder the opposite leg and recheck. If the connector lays flat, go ahead and solder all remaining pins.

Step 30: Required Assembly: Insert IC Into Socket

Welcome to the final step of assembly.

This step will adjust the pins to smoothly and easily fit into the IC sockets we installed earlier. It is very important that this step be done with care, to avoid damaging the expensive chips. Go slow, use light pressure, and take your time. It's better than having your haste cost you a $13 PIC.

When you first receive just about any DIP IC, such as the PIC, the legs will not be parallel to the main chip body. The will bend out slightly. In my experience, it is best to adjust them before trying to insert into the IC socket. It is possible to my a tool that will automatically do this for us, but we can accomplish it with just a pair of needlenose pliers.

Grasp as many legs of the PIC with the needlenose pliers as you can. You want the edge of the pliers closest to the PIC to be parallel with the PIC, and right at the point where the pins go thin. We want to bend the pins at the same time so they bend right where the pins change from wide to thin. Bend the pin where it is thin, NOT where it is thick, or you will risk breaking them off. When the pliers are grabbing in the right place, use a slow, steady, and even pressure to bend them all at once until they go straight down from the chip. Repeat for the other half of the pins on that side, and then twice more to get the rest of the pins on the other side.

Take a moment to verify which pin is pin 1, on both the chip, and the socket it will be placed in. All chips use some sort of indentation or marker for the first pin, or at least the end of the chip the first pin can be found at. You should have a similar marking or indentation on the IC socket you installed earlier. Make certain to take a moment to line those up now.

Once you have the chip orientation, we can begin installing it. Rest the row of pins fathest from you lightly into the socket. You want to be able to look under the chip at the row you are placing. The goal here is NOT to insert them into the socket! For now, we want to make sure we have them in the holes properly. Adjust the chip as needed to get each of the 20 pins on the far row seated, ready to press down. If there are any pins bent out of line and not seating in the socket, use a small flat blade screwdriver to individually push the pin where it needs to go. Once all 20 are in, use a very slight presure to nudge them in just a little. We want them to not pop out of the holes while we set the other half, but we still need enough play to be able to set the other half.

Lightly rest the other half of the pins down. Take a look at each one; our goal is to have each pin in the hole directly, so that when we press down later to fully seat the chip, the pins will go down the hole. If they aren't in place already, pressing on the chip to seat it will bend it, and you'll have to start all over. Using a small flat blade screwdriver, nudge the pins one by one until they are in the holes fully.

Now that all 40 pins are in the proper holes, apply a slight steady pressure in the middle of both ends of the chip. Take it slow, and watch to see if any pins catch and refuse to go in the holes. Adjust them as needed. As soon as you're certain they're all going in as planned, increase pressure until it won't go down any further.

If you took the Piggyback option, you will have an additional IC to place in a socket: the 4066N analog switch. The directions and precautions are all identical to inserting the PIC. It is just easier since it has only 14 pins. Adjust the pins, match the orientation, insert one side, get the other side in the holes, and slowly press down.

Step 31: Complete

Congratulations! The UPCB has been assembled.

If your PIC was already programmed, then you just need to install it in your stick and you're ready to play. If your PIC is blank, use the ICSP connector and your programmer of choice to flash the PIC.

Please check for additional Instructables on other UPCB topics, such as creating a Piggyback controller and installation into an arcade stick. All will be tagged with 'UPCB'

Toodles, May 29, 2007