Wavebird Controller Repair

2015-07-02 17:36 - Making

My Wavebird controller, guts open to the air, in order to replace the C-stick daughterboard.

Some time ago I bought a second hand Wii to keep at my Mom's house. It came with a pair of wireless Gamecube controllers, including a real Wavebird (which is a nice first-party wireless Gamecube controller). I don't play a lot of Gamecube games, but I just recently started Super Mario Sunshine. It's apparently the first game I've played with it that makes use of the C stick -- this game uses it for camera control, like most modern 3D games. Unfortunately the Wavebird's C stick isn't working properly, it's always sending a little bit left or right in a pattern I can't quite make out. Sometimes trying to push left or right doesn't do the right thing.

Back when I first got it, I had opened it up to replace the main analog stick, which I got in a very used state, worn down to an ugly and uncomfortable nub. I cannibalized the compatible stick from the brand new but low quality third party (wired) controller I already had. Today I repeated this procedure, swapping out the electronics rather than just the plastic bits. The original C stick is resting at the bottom right, just below where it came out of. It's hooked in via a short 4-wire ribbon cable. Turns out the replacement part has a different pinout, but a compatible one. I traced out which pin was which on either one. Because the components themselves (I assumed they're just potentiometers at first, but the way they're wired doesn't seem right for that...) were all hooked up in a similar fashion (same pins either connected together and/or going out to one of the four pins), plus the PCB was exactly the same shape, I went for the attempted repair. Which has worked just fine!

CE-161 PCB images

2015-06-09 18:33 - Making

A while back I developed a sudden interest in the TRS-80 Model 100, a truly portable computer from 1983. I watched eBay for a while and discovered that the amount they sell for exceeded my desire to own and play with one. But through that route I discovered it's little cousin the PC-2 (a rebadge of the Sharp PC-1500). Those were cheaper and I grabbed one.

By default it has 1,850 bytes of RAM available for use. But it's got an expansion slot built into the bottom. There are 4K, 8K, and 16K memory expansions available for those slots. But being an accessory for a niche product from the early 1980s, they're generally rare and expensive. Given my recent kick for developing electronics projects, I decided to design my own. Just as i was finishing it, then I caught an "as-is untested" CE-161 listed on eBay. I managed to snag it for just $11 (plus $5 shipping).

The CE-161 module. The CE-161 The CE-161

I gave it a quick shot, and it does appear to be slightly defective. It doesn't seem to store data quite right. But now I have it, and an opportunity to examine it up close. Towards that end I've taken these close-up detailed pictures (click and/or save the links for full size). I might even need to get it under a microscope to confirm things, but even just the pictures are easier to look at than squinting at the real item, which is 1.1 x 1.8 inches.

Game Boy Repair

2015-05-25 12:36 - Making

My freshly repaired Game Boy.

A few years ago I kick-started my video game collection with a giant lot from eBay. The less said the better, but in short the condition of most of it was much worse than the description and/or pictures made clear.

One of the items was an original Game Boy. It completely failed to work. It had an ancient, super corroded, set of batteries left in it. I've taken it apart, and the corrosion from leaked battery acid is severe, throughout the unit. The worst damage is to the small board that generates the power rails, most importantly -19 volts for the LCD. For a while I considered designing a replacement for just this part, but the corrosion was so bad that I would have needed to take some big guesses. I ended up grabbing a second cheap one from eBay, with an imperfect display.

Today I took them both apart, putting the first one's display unit into the second one's shell. It works great! Time for some old-school Tetris playing.

Detailed NES-004 (Controller) PCB Pictures

2015-04-11 14:54 - Making

NES-004 PCB: Front side. NES-004 PCB: Back side.

I've been continuing work on my nesRF project, slowly. It's time to start modifying the original NES controllers, part number NES-004. I need to plan out the PCB, to get everything lined up exactly correct. All the mounting holes of course, plus the overall shape, makes it fit into the original plastic shell correctly. Then I need to know where I can put all of the components, without bumping into any of the plastic supports or structure, the buttons, and so on.

I haven't found a similar project online to start from, like I did for the SNES version I started with. So here's the beginning of this phase. I took the original PCB out of the controller, removed all the components, and put it into my scanner. The full size images that the thumbnails above link to are exactly 1000 DPI, making planning sizes in mil (thousandths of an inch) hopefully straightforward.

There's a fairly good amount of room to work with. Almost everything above the start/select and a/b buttons is empty space, with just a few sparse supports to get in the way. Locating most of the parts should be straightforward. I'm worried about my power button though, the vertical arrangement of this controller may be incompatible with that part.


2015-02-22 15:23 - Making

I've been working since Thanksgiving on my nesRF project, which I've posted about several times already. The point is to retrofit the innards of a real original Nintendo controller to support wireless communications, functioning with a real console. The long story short is that I'm very close to having the project done. Well, the first phase at least. Here's all the juicy details of the whole thing, as one nice self contained post which serves as a nice summary. Of what went well, and what went less well. It runs roughly in chronological order over the things I actually did, and is chock full of pretty pictures.

Planning the hole for the power button. The power button right in the hole drilled for it. The internal physical layout on a laser cut prototype.

First here is some physical layout. This is one of the things I was most worried about. It's worth noting that there are plenty of similar projects already online. They generally aren't pretty outside, and occasionally downright ugly inside. I wanted mine to both look and work great, but I have limited "machining" capabilities. I specifically selected a latching push button to control power, with a round button cap (so all I have to do is drill a round hole), with integrated dual-color LED for status indication.

These pictures show me first planning and then the result of drilling the hole for this push button. Note the tiny divot visible in the first picture. It was simply placed with a utility knife, then I progressively drilled smaller-to-larger holes guided first by that divot and then by each previous hole. It worked mostly perfect. The final hole was clean and round and fit the button perfectly. Except, it was in the wrong spot. My best attempt to measure the position was not good enough, it was too high, so I had to expand the hole a bit. This was operating on the one spare controller shell I had, so I thought it was OK: I learned to be careful on the real one. Somehow on the first real controller I made almost exactly the same mistake. So my hole isn't terribly pretty. Since things didn't line up perfectly first time, I had to expand the hole even further to really get proper clearance enough to allow the button to push in and out.

The inside of the controller shell, trimmed out. The connector, opened. Trimmed off the strain relief for the connector to expose the wires.

Next, the internals and the connector. Several plastic supports inside the case exist to route the cable where it needs to go, and absorb any strain of pulling on the cable. My plan is to remove the wire and put new components in that space, so they have to go. If you look carefully you can see the slightly rough edges where I've cut various bits out of the plastic case. Almost all the removed material is just inside the original cable hole, on both the top and bottom sides.

The connector assembly, swung open. Partially trimmed out the insides of the connector. A fully trimmed connector assembly.

Next up is the connector end of the controller. My plan is to fit the entire receiver circuit inside this connector. The first step is opening up the connector and freeing the individual wires of their strain relief device. Opening the connector is quite difficult, I managed to design and 3D print a tiny jig to press in both of the catches on a side at once which helped tremendously. Then there's lots of plastic to remove, to make room. The original connector has a large hinged assembly, which fits around the metal connector pins to hold them in place. I used a dremel to cut off that hinged assembly, and plenty of the extra plastic bits besides. Then super glued the pins back into place.

Both sides of the SNES receiver board, obligatory quarter for size reference. Solder paste, applied through a plastic stencil. The receiver board full of solder paste.

Fitting the receiver circuit into the small connector was a challenge. It was one of my main goals however, as it will look much nicer than anything else I could build myself. So all the electronic parts are surface mount varieties. These are much smaller than the alternative, which I need. But it makes working with them extra difficult. I'm lucky enough to have access to a laser cutter, which I used to create a stencil. The stencil is used with solder paste, which is a set of microscopic balls of metallic solder mixed with a paste of other active and inert ingredients not completely unlike toothpaste. With the solder paste spread over the stencil, it sticks to the circuit board in just the right places. This is the first time I've ever worked with surface mount parts or solder paste so I was operating mostly in the dark. The solder paste result looked pretty good to me, but I was concerned about how much paste was left for the pins around the microcontroller.

The parts assembled on the solder paste, under a microscope. The same parts, after soldering.

Here's a pair of microscope shots. Only ten times magnification, but it reveals quite a lot of detail. On the left is the board assembled with the paste. The solder paste is just sticky enough that you only need to touch the components into the right spot and they stick in place. With that done (all my parts go on one side) it's time to melt the solder and permanently attach the parts. I used the "hot plate" technique. Actually with an old skillet (now clearly marked "NO FOOD" due to my use of leaded solder) on the stove. I mostly just set it to medium heat and waited. The inert ingredients (I'm thinking the petroleum jelly) in the paste started to melt rather quickly. It took a few minutes and then shiny molten solder began to appear. The second shot is after everything cooled down. The small components all stuck wonderfully. As I feared, the pins on the microcontroller were bridged. There was so much excess solder that it ended up climbing the legs (capillary action) and leaving blobs of solder connecting various pins. Some careful work with solder braid sucked out the excess.

It's also worth looking very carefully at the two pictures and comparing them. Especially note the position of C2. When the solder melts into a liquid, it has a surface tension just like water. This tension will actually act to pull the components into the proper place! The solder mask (the purple stuff on this board) repels the molten solder, but the solder sticks to the exposed metal pads as well as the components, lining them up with each other like magic! This makes assembling tiny surface mount parts by hand more practical.

The fully assembled (except the indicator LED) receiver board in situ. Second angle fo the fully assembled receiver.

So here's the first "fully working" part! I forgot about the pins on the RF daughter board (bottom left of the first image), so they got dremeled down to fit only afterwards. And three of the wires awkwardly snaked around the edges because they were attached second, but should have been first. But it fits and works! Almost... It turns out that using super glue to affix the pins was a bad idea. In this first unit they don't quite line up correctly anymore, so I can't actually put this connector into the port on the console. I've assembled a second working one, by connecting all the pins into the port before gluing. This works, but it's very difficult to insert/remove the connector. So I plan to do a third with just hot glue, which is a bit flexible. I hope that will hold everything together enough, but be just pliable enough to allow the pins to shift into place as they mate with the connector port.

The controller/transmitter board, pasted and assembled. Note resistor R2, which had to be fixed by hand.

I used the breadboard transmitter circuit to test the receiver above. Once it was working, time to get a real controller assembled! Pictures above are first the board with solder paste and components attached. Note that I manually wiped off a bit of the solder paste around the microcontroller, in an attempt to avoid having it bridge the pins like before. It helped a bit, but not enough. In the process of heating the thing to melt the solder, one of the tiny surface mount resistors wasn't quite positioned properly and required manual attention. I had a devil of a time re-attaching it by hand later. You can see tiny bits of solder spread out around it as I repeatedly tried to attach it down with the iron. But I did (barely) get it lined up and soldered down. It happens to be the resistor which controls the current that the charging IC (right next to it) will apply to the battery, affecting charging time.

And with mention of the battery: I've been doing a battery test for days now! I've had the controller on, and been watching it, for nearly all my waking hours since Thursday. It took until last night (Saturday) to finally run through the whole battery. So it's got at least 24 hours of operating life on the battery, which is much better than I even hoped for. Right now I'm leaving it switched on, with a "dead" battery, to observe exactly how it behaves there. It can be unsafe to attempt to re-charge a Lithium Ion battery after discharging it too far. So I've got a chip in there to make sure that I won't over discharge it. So far signs are very good!

The first assembled test fit of the transmitter. Final assembly of the transmitter, after repairing the one critical error.

Here's one final note worth making. I was quite careful with everything I did here, to try to avoid waste. I didn't want to design the board, pay to have it fabricated, and only then discover a critical problem. I was almost completely successful in this regard. I missed just one physical layout issue. An earlier post showed the plastic laser cut prototype that I used to avoid this. What I failed to do was ever insert the shoulder buttons. They pivot through one of the plastic standoffs which, whoops, I blocked with my PCB. The PCB had no traces or parts there, so I could dremel it out without issue. But one of them was also blocked by the RF daughter board! By extreme luck, only a tiny bit of the corner next to, rather than part of, the antenna was actually located there. In these pictures you can see the bits that I had to chop out. Good thing I didn't need to pay another $50 to re-spin another board!

So what I've got now is one each transmitter and receiver circuit, working and tested end to end. Wonderful! What remains is to actually complete the original target of the project and hook this up to a Nintendo, not a Super Nintendo. Early in my research I discovered that they're nearly identical. So I can, if I choose, build a receiver only for the Nintendo and use the Super Nintendo controller with it. That's next. I got a cheap NES Satellite receiver only via eBay. It works via infrared, but is a nice pretty container to hold a replacement radio based unit, and I certainly won't run into any connector modification issues like before!

RF modified SNES controller, front. RF modified SNES controller, back.

Finally, here's a picture of the final modified controller! Overall it still looks very pretty. There's a bit of a gap around the indicator/power button. The cable hole is replaced with a connector for recharging the battery. Hopefully my second controller will look even better without the gaps! I've pushed all the source to GitHub today. The hardware was designed with KiCad and the software through the Arduino IDE, with the RF24 library.

Built Myself a Footstool

2015-01-26 22:09 - Making

My final plans, based on the material available.

This weekend I made myself a footstool. I started from these plans I found online, though I couldn't find any attribution for them. I especially like that it looks nice enough, but leaves the feet right out by the outer edge, making it quite sturdy. Then I customized based on the material available. There was a nice wide board in my Mom's scrap pile, but it was covered in some old blotchy white paint. More on that later.

The legs The legs cut out. Traced a bucket for the cutout on the legs. Cut the legs

I started by marking out the three pieces. The top was just a rectangle, and the two legs each were trapezoids. With them marked out correctly they were both cut on the table saw. One of them had a bit of a flaw, but that area was soon to come out. I marked the round cutout with a bucket, and then cut it out with a jigsaw.

The top has rounded corners, a convenient bottle was traced for the radius. All three pieces after routing a roundover on all the outer edges. It took some careful planning to get the angles for the joint correct. When I cut them by hand they fit great!

The next step was a lot of sanding to strip the paint off. It didn't all come off: the knots grabbed the paint tight, and some low spots had extra paint that sanding couldn't remove. Close enough, and much better, though. I don't plan for it to be very visible under my desk. The corners of the top were rounded off with the jigsaw, a handy can on the workbench was a nice size to trace. With that done they all got a pass on the router for a round over of the outer edges.

Then I had to cut the joining slots in the legs. At just the right angle. After some sketching and practice aligning scrap pieces, I realized that the cuts had to be complementary parallelograms. And if I crossed the opposite corners of those, I get the center point, which should line up with the center point of the leg pieces. Easy peasy! I had to cut those slots by hand so they came out just a tad rough, but worked just great after a little filing to clean up the edges.

Laying out the legs, on the top upside down. No fasteners, just glue, clamped overnight. The final product.

With the legs lined up they were laid out to be even on the top, upside down. Then I used glue, no nails, no screws, and clamped it overnight. Voila! Some spots of paint remain, but it's going to live under my desk so that's not a big deal. It turned out almost exactly as I planned, but a bit too tall perhaps. I basically just used the board available as it was, but I probably should have cut it down by an inch or so. Either way it serves its purpose well enough!

nesRF Working End-to-End

2015-01-17 17:51 - Making

Tada! It works. Almost the only thing left to do is manufacture the PCBs, then assemble!

The Final (?) nesRF Prototype

2015-01-14 19:51 - Making

Adding SMD chips into my nesRF breadboard prototype.

Today the second, and hopefully last, batch of components arrived from DigiKey. I combined some of those with the SMD breakout boards I ordered earlier. I'm pointing at one of them there, mostly for scale. You can clearly see the board that I'm pointing at. You'll have to squint, and probably open the full size image, to see the chip on that board. On the left there is the 2.5 volt regulator, and the other on the right is the battery charging chip.

It was medium-good experience soldering them on there, which I did completely by hand. And not perfectly, but I already learned a bit that will make handling the final board better. Now that I've got the exact chips I plan to use set up here, I can test that they really do what I want them to. And now that I'm set up this far, I realize I didn't leave any room on the board to arrange the buttons! I need those to do the next test! If it's not one thing it's another, but the light at the end of the tunnel is definitely coming into view.

nesRF PCB Prototype

2015-01-08 21:31 - Making

The first laser-cut plastic PCB prototype.

Today I made a simple prototype for the physical layout of the PCBs for my nesRF project. Just plastic, laser cut. Here's a picture of the one that goes in the controller, with a couple components also resting in their place. This was a great exercise. The receiver board was just fine, but this one had a few adjustments to make to it which were so much more obvious when in place like this. The button needs to move a bit to avoid the mounting post just next to it (in the other side of the case). And a cut-out of the PCB where the button cap goes will make it more likely to operate smoothly. A couple of the mounting holes were very tight, so they've been expanded. And I was able to check again that all the buttons line up with their openings.