Big Mess o’ Wires


A home-built CPU, and other messy electronics adventures

Archive for the 'Bit Bucket' Category

Maker Faire 2010

Ah, Maker Faire. It’s part garage inventions, part Burning Man reruns, part techno-supermarket, and all awesome. Can it possibly be a year already since Maker Faire 2009, where BMOW was featured in Wired, Slashdot, Digg, etc. and I talked myself hoarse in a 48-hour marathon of CPU conversations?

This year I headed back to the Faire as a visitor rather than an exhibitor, so I’d actually have a chance to see the cool stuff I missed last time. The show has actually grown since last year, which I didn’t think was possible, but they annexed a neighboring county or something and added even more exhibits than before. This event is big, big, big. It’s almost too big. After a few hours my brain was fried, and I just couldn’t appreciate all the awesome stuff anymore. I think there were at least three different robot death-matches, ten 3D printers, and dozens of Arduino add-ons.

My major goal for the show was to do SparkFun’s SMD soldering class. I made a beeline to the SparkFun tent as soon as I arrived, and after a short wait, I sat down with eight other solder artists to construct SparkFun’s Simon kit. Here are a few pics of the setup:

After a short introduction, we jumped right in, and I soldered the first tiny IC without any problems (1 mm pin spacing). But at step two, a surface-mount capacitor, the wheels came off the cart. I just couldn’t get the cap to stick to the pad, after at least ten attempts, and eventually I overheated the cap to the point where it disintegrated. I sheepishly asked for a replacement, which took a while for them to find, and it took even longer for me to successfully solder it in place. Everyone else in the class was well ahead of me, and I was beginning to feel like a dummy.

After a few more steps, I soldered in the battery terminals, and was ready for the first major checkpoint: test for 5V. Unfortunately, this was when I discovered I’d soldered the battery terminals onto the wrong side of the board! One of the instructors took it to a rework station to fix it, which took a mysteriously long time, and when he came back I had a burned board with one trace lifted off the PCB. Argh. Eventually I was able to repair it with a jumper wire, and it passed the 5V test. But we were now an hour and a half into the class, and many of the other people were already done, just awaiting their turn to have the Atmega on their Simon board programmed.

I kept working, while the people on either side of me debugged their boards. After programming, one neighbor had a board where only two lights worked, and another had regressed and no longer passed the 5V test. While they debugged, I moved steadily forward, and eventually finished the assembly. At this point, both SparkFun’s main and backup Atmega programmers broke, and they were unable to program any more boards. Not a great ending to the class.

Ironically, the Atemga itself with its 0.65 mm pin spacing (I think) was actually pretty easy to solder. Just tack one corner, blob solder onto all the other pins while ignoring shorts, and then suck away the excess with solder wick. I’d say it’s the small size of the components that makes soldering them challenging, less so than the spacing of the pins. Take a look at these photos of my finished board. Some of those little surface mount passive elements are soldered in at awkward angles, but it’s the best I could do. Look at the size of my finger for reference. That tiny capacitor to the lower-right of the Atmega in the second photo is only about 1 mm long, and 0.5 mm wide… yikes! These parts make a grain of rice look giant. It’s tough to even see these things clearly. In the photo you get a pretty clear view, but with the naked eye that tiny cap is just an unidentifiable grayish speck, and whether it’s soldered properly is impossible to tell.

After the class, I wandered the Faire for most of the day, seeing lots of pretty cool stuff, but nothing that really stood out in my mind as exceptional. I enjoyed getting a chance to program an Altair 8800 using the front panel switches, but overall I think the show was just too much steam punk exploding fireball mechanical giraffe sensory overload.

As I prepared to leave at the end of the day, I stopped by the SparkFun booth once more, and they’d managed to get their Atmega programmer working again. I asked if they could program my board before I left, so I could attempt to debug the inevitable problems later at home. They did, but instead of a debugging puzzle, I got the happy “beep!” of a working Simon board. No debugging needed!

HUGE thanks to the SparkFun guys. The soldering class was great, and my instructors Matt and Matt were full of help and encouragement. The class itself was a fantastic bargain, since they only ask for a $20 donation, which goes to local science-related education projects. The Simon kit sells in the SparkFun store for $25, so this was like getting a $5 discount off the kit *and* free hands-on training. Can’t beat that!

No comments

Cheetos Guitar Amp

Random project for a Saturday afternoon: a guitar amp in a Cheetos Crunchy can. I followed a modified version of Make Magazine’s cracker box amp design, which uses an LM386 power amplifier and a few passive components. The amp has separate crunch (gain) and volume controls, is powered from a 9V battery, and delivers half a watt through a 2-inch speaker hidden inside the can. The whole thing went together in a couple of hours, and most of that was planning how to arrange the parts.

Now I just need to learn how to play guitar.

2 comments

Computer History Museum Visit

A fantasy-land for hardware nerds like me is hidden in a former Silicon Graphics building in Mountain View, California. Despite living only a few miles away from the Computer History Museum, somehow I’d never found the time to visit there before today. It was well worth the visit, as the museum is stuffed to the roof with amazing artifacts from computing history. Even though the majority of the exhibits were closed due to a renovation project, I still got to see all kinds of wonderful techno-treasures.

Here I am standing inside the Cray-1 supercomputer. In 1976, this machine was as high-performance as you could get, a 250 MFLOPS monster that cost $5 million and required 115 kW of power.

I thought BMOW had a lot of wires, but brother, when I saw this Cray, my jaw dropped. Just look at this thing! See all that blue stuff on the inside? Those are individually-routed wires, stacks of wires, piles of wires, mountains of wires, every single one neatly-labeled with an ID code.

The Cray-1 is a hollow cylinder, about 6 feet tall, 4 feet in outside diameter, and 2 feet in inside diameter. Most of that space is consumed by about 2000 circuit boards, and the rest is positively stuffed with wires. I stared at the circuitry for a long time, trying to estimate the wiring density, and decided the machine has somewhere on the order of 100,000 individual wires.

Here’s a close-up, which gives you a sense of the massive scale of the wiring. It’s just insane.

When I finished ogling wires, I took a look at Babbage’s Difference Engine No. 2. Designed by Charles Babbage in the 19th century, this massive mechanical marvel computes tables of polynomials. It supports up to 7th-order polynomials, and computes results to 30 decimal places. The desired polynomial is entered by setting a series of gears, and then a crank is turned by hand to generate the results, one at a time. Babbage designed it all on paper, and built working versions of small pieces of the mechanism, but it remained a purely theoretical invention for more than a century after his death. Some doubts remained about whether the machine would actually have worked, had it been built.

In 1985, the Science Museum in London set out to build a working Difference Engine No. 2, from Babbage’s original design drawings.  The project took 17 years to complete, facing all sorts of setbacks, but in the end the machine worked as Babbage had intended. The finished difference engine is on display at London’s Science Museum, but a duplicate was made for project benefactor and Microsoft millionaire Nathan Myhrvold. Myhrvold agreed to lend his duplicate to the Computer History Museum, to share and educate.

Some of the other computing artifacts I got to see:

  • Deep Blue, the IBM chess computer that defeated World Chess Champion Garry Kasparov in 1997.
  • The first mouse- a block of wood with a momentary push switch mounted on it. Created by Doug Engelbart at PARC in 1964.
  • A 10MB hard disk platter, 3 feet in diameter, from 1974.
  • An original Apple I, the kit-built ancestor of the Apple II. A hand-assembled logic board, keyboard, and power supply, mounted on a plywood plank.
  • A restored and working PDP-1. During the restoration, volunteers were able to retrieve data originally stored in the core memory decades earlier.

Too much awesome stuff!

1 comment

T-Shirts

BMOW logo T-shirts are now available! Check the link on the left sidebar. Get one and show a little electronics geek pride! Available in six colors, $18.99 each, operators are standing by to take your order.

These are the same T-shirts that I and my assistants wore at the Maker Faire last year, where many visitors were disappointed they couldn’t buy a shirt for themselves. I only made six in that first run, but my friends who got them still seem to wear them a lot (maybe a little TOO much). I wore one at Disneyland last year, which led to a long conversation about CPU design with a guy I met while in line for Mr. Toad’s Wild Ride. Electronics geeks are everywhere.

No comments

Feeds

If you’re not reading the BMOW comments, you’re missing half the discussion. Matthew Simmons asked if there’s a comments feed, and the answer is YES. I’ve added links for both the posts and comments feeds to the left sidebar. I often make follow-up comments to my own posts, with progress updates or related discoveries, and lots of smart people provide great suggestions and commentary. If you normally read the BMOW site with an RSS reader, be sure to add the comments feed too so you don’t miss out.

No comments

RC Servo Signal Decoder, Part 2

It works! I’ve continued poking away at this circuit to decode an RC airplane servo signal and trigger a camera shutter during flight, and I’m happy to report success!Once I switched to using the CD4013 flip-flop with a positive logic clear input instead of negative logic, it was a piece of cake. I have to say, living just a mile from one of the USA’s largest electronics dealers (Jameco) is pretty sweet. I can hit their web site and place an order for practically any obscure electronic component I can think of, then cruise down to their offices and pick it up from the will-call desk an hour later. Nice!I rebuilt the decoder circuit that I discussed last time, soldering everything together “dead bug” style. This was necessary in order to keep everything as small as possible, so I could fit it inside the camera body.  I forgot to take a photo before I closed everything up, but it looks very similar to this example from laureanno.com:When I first connected the servo, decoder, and camera, it didn’t work. Nothing happened when I toggled the switch on my RC transmitter. Setting up the oscilloscope again, I was able to see that the reference pulse width generated by the RC circuit I’d built was about twice as long as it should have been. I’m not sure how that happened, even with 20% tolerance components, but I was able to quickly swap in a different value resistor, and get it working perfectly. Then with a bit of creative packing, I managed to cram it all back inside the camera body.Today during my lunch hour, I was able to try it out for the first time. The shutter trigger worked fabulously! I wish I could say the same for the quality of the pictures, but unfortunately the focus wasn’t set quite right, and the photos are a little blurry. They’re still pretty fun to look at though. I was flying next to the headquarters of Oracle Corporation in Redwood City, California. Those are the clustered cylinder-shaped mirrored buildings you see in the photos. The plane looks like it was a little higher than the tallest building, which I think is 20 stories tall. See if you can find me in some of the photos!Click any of the thumbnails below to see the full-sized version.             February 27 Edit: I corrected the focus problem, and tried again. Unfortunately I got the propeller in some of the shots, and this new set wasn’t from as high an altitude. But I did get some great shots of the bay, an aerial self-portrait, and a flock of Canada geese.        

2 comments

RC Servo Signal Decoder for Camera Shutter Switch

Hey, I’m back. I think my oscilloscope made me do it. For the past six months I’ve been working with RC airplanes, not doing any electronics work. The oscilloscope has been taking up space on my desk while it sits untouched, gathering dust. Last week I finally decided I was never going to use it again, and packed it away in a closet. But that got me to thinking about electronics again, and about what kind of projects I could do related to RC. So after just a few days, the oscilloscope has returned from its closet banishment and is in use once more for a new project.

I recently bought an Aiptek SD 1.3 megapixel camera, with the idea to mount it on the fuselage of one of my planes, and do some aerial photography. The Aiptek weighs just 52 grams (about 2 ounces), and so it won’t weigh down the plane excessively. But the tricky part is finding a way to activate the shutter while the plane is in the air. It turns out that this is mostly a solved problem, and it’s possible to build a circuit to decode the servo signal from an unused receiver channel, creating a 0 or 1 pulse depending on the position of a transmitter switch or stick. Then by hacking into the camera guts and a bit of soldering, that pulse can be used to trigger the shutter.

Spektrum 6110 receiver with servo hacking harness connected

Here’s one of my planes (a GWS Slow Stick), with three spare wires hooked into the receiver’s “gear” channel (which I don’t normally use), connected to the oscilloscope and a growing circuit on the protoboard. It turns out that these servo signals for the channels are ideal for hacking with digital logic. Of the three wires connected to the receiver, one is ground, one is a regulated +5 volts, and one is a modulated position signal that indicates the desired position for that channel (rudder, elevator, aileron, flaps, gear, whatever). The connectors are even standard 0.1 inch male headers. What could be easier?

Slow Stick sevo decoder

I examined the servo signal with the oscilloscope. It’s a regular pulse train with a 22ms period. The width of the pulse varies depending on the desired position for the channel. The width is about 1.2ms at the minimum position, and 2ms at the maximum position. Taking 1.6ms as the midpoint, what’s needed is a circuit that outputs 0 if the pulse width is less than 1.6ms, and 1 if it’s greater than 1.6ms. This could be done many different ways: the first two that come to mind are a small microcontroller, or a low-pass filter that turns the servo signal into a DC voltage, and compares it to a reference voltage.

I’ve decided to follow another example I found, which I thought was especially clever. It uses just two flip-flops and a couple of passive components. You can check out the circuit schematic for the details. The servo signal pulse train is used to clock the first flip-flop. It’s D input is tied high. When it’s clocked, its Q output goes high, which begins to charge an RC circuit. When the capacitor voltage gets high enough, it activates the asynchronous reset, clearing the Q output. The complementary /Q output is used to clock the second flip-flop, whose D input is the servo signal. If the RC time constant is chosen correctly, then the second flip-flop will be clocked 1.6ms after the first one, sampling the servo signal at that time. If the pulse width is less than 1.6ms it will sample a 0, otherwise it will sample a 1. Pretty neat!

My only headache is that I don’t have the 4013 CMOS flip-flop called for in the circuit. I do have lots of 74LS74 flip-flops, which are similar, but are TTL designs with an active low asynchronous reset instead of active high. I’d thought it would be simple to modify the circuit to work with an active low reset, but after a couple of hours of futzing around with it, I concluded that it’s either not possible, or I’m just not smart enough. I started by swapping the positions of the resistor and capacitor, but the circuit initializes in the reset state and never exits it. And even if I found a solution to that, the input current on this LS series chip is so high, that with a 10K resistor to ground, the voltage at the input pin is actually pulled up to 2 volts! Ack! I decided I’ll just buy a 4013 for a few cents, and stop banging my head.

4 comments

Uzebox, Take 2

It’s done. Yes, it cost twice as much money and 100X as much time as just buying one from Adafruit or Sparkfun, but I’ve finished my home-made Uzebox.

Notable features vs. the “stock” Uzebox:

  • vertical mount
  • mini-stereo jack for audio
  • internal speaker
  • transparent acrylic case
  • lots of glue

And it plays Arkanoid! Now I can return to my regularly scheduled life. :-)

   

I wrote about the Uzebox earlier: it’s an open-source hardware project utilizing a microcontroller to synthesize an NTSC video signal on the fly, in software. Many classic games have been ported to it, and there’s an active developer community.

11 comments

Care Package

After reading about BMOW on Slashdot last week, Jim George offered up some Augat wire-wrap boards and old-school ICs that were sitting around gathering dust. His care package arrived today, just in time for a weekend of tinkering.

There are four Augat boards, each one about 7 x 2.5 inches, or about 25% of the area of the BMOW system board. Each board has space for five columns of skinny DIP 0.3 inch chips. The undersides (not shown) are pre-populated with about 600 wire-wrap pins.


Jim also threw in a few dozen wire-wrap tags, which are just little plastic cards with holes in them that can be placed on the pin side of the board, showing where the chips are placed and marking the pin numbers. I can’t believe I built all of BMOW without these. They seem like such an obvious thing. Staring at a featureless green board with a thousand pins on it, it’s easy to get disoriented without markers like these.

To round out the package, Jim also included a handful of 7400 series logic chips, and other related parts:

  • 74AS181 x 5, 4-bit ALU
  • 74ALS374 x 11, 8-bit register
  • 74F323 x 7,  8-bit shift register
  • 74F299 x 6, 8-bit shift register
  • 6116 x 3, 2K x 8 SRAM
  • Intel 8255 peripheral interface adapter

Thank you Jim!

5 comments

More Uzebox

Finally, I got the Uzebox to work! I’m not quite sure what made the difference, though.

First, I tore apart my earlier breadboard setup, and rebuilt the circuit from scratch, as neatly as I possibly could. Then I scrapped my grayscale DAC, and dropped the AD725 RGB to NTSC chip into the circuit (which had arrived in the mail since my previous attempts). Soldering the AD725 was my first experience at SMD soldering, and it was a little challenging, but not too bad. I managed to get 15 of the 16 pins soldered successfully on the first attempt, but the last pin just wouldn’t bond to the pad. I must have made 20 attempts to solder it, and was about to give up and solder a jumper wire to the pin, when I finally got it.

I connected the circuit to my finicky Dell monitor, turned it on, and voila! It worked!

The image quality is OK, but seems a bit blurry, and there’s noticeable color blooming. The interior of a red letter R is dark red instead of black, for instance. The photos here actually make it look cleaner than it really is. It’s certainly very playable, though, and maybe I’ve just forgotten what composite video quality looks like.

The rewired circuit on the breadboard:

Pac-Man title screen on the Dell monitor:

Pac-Man maze on the Dell monitor:

2 comments

Next Page »