Saturday, April 04, 2009

One of the 'funnest' days of my life today!

First off, this is NOT a rant! At least not a negative rant - rather a very positive one. And yes, it's something of a brag post about my kid - I'll admit this right up front!. So if you don't want to hear a dad brag on about his son, please use your browser's 'back' button and go elsewhere.

Due to divorce circumstances that both don't matter here, and I don't want to go into anyway, my son Jdawg (nickname of course) lives 1977 air miles from me (one way) in a tiny little town in Michigan. I just flew out for this weekend to spend his birthday with him (his actual birthday is more than a week away, but this is when it worked out to come).

Jdawg is SMART. Really smart. More than the average bear kind of smart. He is self-taught in web design, and now does advanced sites for friends for pay, and generates income from Google Ads and other means. Smart. Last year he learned Morse Code in a DAY (I taught him, as a long-time ham radio geek myself). NO ONE learns the Code in a DAY!!! It took me 3 weeks when I was his age, and most adults - IF they ever learn it all, take at least 3 months. He had the whole thing down in a day, polished in a weekend. He's a Linux geek and taught ME how to install, tweak, and run Linux on a number of my computers. He was the only one who could get dual-Linux-monitors running on one particularly bitchy computer I have - paid him $50 to do it, as I had tried 10 times and couldn't get it to work. Yes, this kid is smart.

Since last winter, Jdawg had talked of wanting to do 'hardware hacking'. Not sure what he really meant, given the new age of computer-speak and its interpretation to a younger audience. But to me, Hardware Hacking meant the hand-wiring of circuits that harken back to the origins of computer technology and 'small scale' chips of the 70s and early 80s. I explained some of this to him - talking of TTL (Transistor-transistor-Logic) chips and Boolean Logic gates (AND gates, NOR gates, OR gates, Exclusive NOR gates, and so on). He seemed really intrigued with all this, and asked a zillion questions that defied explanation without actual chips in hand. So at that moment, I decided to set him up with a 'mini logic lab' with a large assortment of chips, a suitable TTL power supply, LED displays, ceramic & electrolytic capacitors, and resistors to build the basic building blocks of all modern computers.

I spent a number of hours online from December 2008 to April 2009 ordering in all the basic parts he would need to learn 'old school hardware hacking', along with books with schematics to work from, jumper wire, prototyping boards, basic hand tools, etc. - all the stuff he'd need to get hands-on with the logic crap that makes even today's computers work - yeah, it's MUCH smaller now, but the principles are the same and the old-school chips are much easier to work with and get the concepts involved.

So using some old schematics from the early 1980s 'Engineer's Notebook' and the classic 'TTL Cookbook', we started in earnest about 9:00 AM today - Jdawg had NEVER seen 'chips' before, even though his 3 computers all have zillions of them. He'd never seen a capacitor, resistor, bench power supply, or wire stripper before - EVER! Although I thought the learning curve steep, I assured him that was true, but the curve wasn't HIGH. So we covered a LOT of basic rules and definitions. He gobbled this up and took good notes. I was constantly watching and listening for any clues to 'this won't work' - but as I fully suspected, Jdawg would be a knowledge sponge and just soak it all up - he asked a million questions (I love that!), and kept taking notes. But above all, he wanted to TRY THINGS. So from here on out (other than a few critical wiring details of the all-important oscillator clock to run all of our experiments, which I did myself), Jdawg did EVERYTHING himself - stripping wires (below), inserting parts, reading the schematic. I was ONLY the coach.

After about 5 hours, we got the first decade counter working - this after many wiring corrections, jumper changes, and re-reading the schematic. If you've never built digital circuits with TTL chips on a Proto Board, you have no clue how much of a mind twist this is! I'm an adult and I sometimes have a hard time making things work the first time doing this sort of work. But Jdawg is so persistent, with the 'I can do it / fix it' mindset that he just kept going and going, as the dozens of jumpers and connections were made. He had to redo numerous connections, studying the schematic and counting pins, noticing buss bars, and all sorts of other details.

But the exact moment the counter 'woke up' and started COUNTING IN DECIMAL DIGITS, it was DOUBLE HIGH FIVE time!!! I have never seen a kid more proud of his accomplishments, and I'm so glad I got to be the one to see his happiness when the digits 0-9 started counting themselves off on the LED display!!! I'll never forget this moment! We laughed and admired the working counter circuit and high-fived again and again - Jdawg just beamed from ear to ear, and I beamed at him, watching him enjoy this success - how bloody complicated it is to get to this basic point in TTL Logic design. I was SO PROUD of him!!!

We then took a break for another first - he nor I had never had a Big Boy Burger so we ran down to Alexis Blvd. to Big Boy and had a great burger lunch together, while talking about our 5-hour ordeal to success with the first of 2 decade counters.

After lunch, we build a division circuit - divide the clock count by 7 - which amazed Jdawg at the fact we were really witnessing a very basic computer circuit - hard wire programming of chips to achieve a task - divide the oscillator clock pulses by 7 and display the result on the counter circuit he had spent 5 hours building!! I wish I had photos of this stage (and the Big Boy Burger stage as well - only have 'mental photos' of these events!).

After the division experiment, Jdawg built a SECOND decade counter (even quicker and better than the first - practice makes perfect!). To make a long story short, we then built a switch bank for turning functions on and off, and built a simple oscillator (3909 chip - I built this one for the sake of time - I was getting TIRED!) to make a 'beep' for every clock pulse.

The last photo (below) is of the final circuit - 8 TTL chips, 0-99 dual-decade counter, beep speaker oscillator for audibility of master clock oscillator clock output, and TTL 'freeze count' function controlled by toggle switch to 'freeze' the count display (while the count continued in the chips themselves). In short - ONE DAMN COMPLEX CIRCUIT to build in 12 hours with a kid who had never seen a chip in his life!!! Complex for his DAD, who has seen more than his share! Note that the master clock oscillator is on the proto board on the right (555 driving 7400 one-shot to clean up the pulse), 4-switch binary switch bank with Jdawg's wrist behind, and dual-decade counter board on left (some 70 jumpers or so in proto-board - WIRED BY JDAWG to make it all work, along with 6 TTL chips, 2 LED displays, and 14 270-Ohm limiting resistors for LED - all wired and installed by Jdawg!)

Click on this photo for a good shot of the detail involved in putting all of this together. Bottom line - not many folks could do this - I mean adults! Kids? I don't know a single one who could have done this much in 12 hours, nor who could have persisted for 12 hours for such an endeavor. I never let on to Jdawg how bloody tired I was getting - he just kept going and going and going, ripping out wrong jumpers to do it again, checking and rechecking for errors, over and over - all in an effort to make it right. All while keeping all his parts arranged and organized 'to keep it neat'.

In the end, at 9:30 PM (12 1/2 hours after we started), we had a 0-99 counter, with display freeze function, beeping speaker master oscillator clock monitor, power-off toggle switch, and count-beep mute toggle switch - ALL (except as listed above - some details of master clock oscillator, and beep circuit - both minor to save time) wired by Jdawg. I only took charge of the master oscillator clock circuit for extreme reliability (the heart beat of all such experiments) and the 'beep' circuit just to save time - it was getting late! - this circuit wasn't by the book and I
had to 'invent' it based on an LM3909 chip forced into service - but a very minor addition given the MANY wires and circuits that had to work first - all wired by a 14-year old kid on his first day with chips!

Happy 15th birthday in a couple weeks.... it was a truly enjoyable day!

Note: You Tube video to be linked of final operation once I get home and have a decent internet connection.