A friend and colleague of mine has a project on Kickstarter. He, like me, is an avid reader of Make: magazine, and builds a fair number of neat projects at home (he even has his own rapid prototyper!). One day, he was launching compressed air rockets with his kids, and thinking about a folding-wing balsa glider that he'd seen in a recent issue. The glider was launched with a rubber band - but why not graft it onto an air-rocket? He brought prototypes of this rocket glider to MakerFaire New York last year, and it caught the eye of the editors of Make. It's now a project in the latest issue of the magazine.
He and his collaborator are now working to do some mass production of the glider, and a new design of the compressed air launcher for them. Check out their project at Kickstarter.
Thursday, May 22, 2014
Kickstarting Rockets
Posted by
-A
at
8:54 PM
0
comments
Labels: kickstarter, make, rocket
Tuesday, November 12, 2013
Repairs
Oh TI-83! You graphing calculator of yore. So expensive, so limited compared to today's options. Yet you still hold a special place in my heart! I actually still use my calculator for stuff almost on a daily basis, though rarely taking advantage of its full capabilities. For simple stuff I usually already have some sort of computer program open that can do it. I could also solve it using Google. For more complicated stuff I'll use Excel or Matlab. And yet...there is something about whipping out that hunky chunky plastic and punching the keys that still satisfies.
So when my TI-83, which I bough entering freshman year of college, starting showing weird artifacts on the screen, a little part of me died. I could not in any way justify spending $80-90 to replace it new. Trolling Craigslist and eBay is a pain in the butt. Could it be repaired? Yes, as it turns out, and the Internet provides.
I found this video in a few minutes. This fellow had similar flaky issues with the screen. He was able to trace it back to flex-cable that bridges between the logic board and the display board. This thin ribbon of metal-on-plastic, adhered on either end with z-conductive tape, had one trace that had become open-circuit. The solution? Bridge it with fine wire:
I covered it over with Kapton tape to keep the wire from rattling around. Put the case back together, pop in the batteries, and we are back in business!
Posted by
-A
at
7:48 PM
0
comments
Labels: make
Tuesday, May 8, 2012
Kickstarting Fireflies
If you aren't familiar with Kickstarter, it's a way to crowdsource funding for small-ish projects. For instance: a band wants to cut an album, but don't have the cash to get studio time. They put up a sampling of their music on Kickstarter and say "We need $X. If you pledge $Y towards our goal, we'll give you a band T-shirt. If you pledge $Z, we will give you a first-run CD when we finish it." Other kickstarter projects work along similar lines: soliciting pledges with various tiers of support.
Come to think of it, it's a lot like an NPR pledge drive. Like an NPR pledge drive, each project has a total dollar figure in mind ($X). Unlike NPR, if the goal isn't met within a specified time period (say, one month), no money changes hands and everyone walks away. Only if the pledge amount is met do credit cards get charged, and the entrepreneur gets their funding. Kickstarter takes a cut of a few percent.
Kickstarter is starting to make a splash. They've successfully funded some 20,000 projects to the tune of $200,000,000. They recently made a splash, covered in the new york times, when a project for a wireless watch shattered their initial goal of $100k by raising over $7 million. At the moment, with 10 days to go, that project has over $10 million committed.
There's no guarantee that you'll ever actually get your tchotchke, of course. This isn't venture capital, either - there are no ownership stakes involved. Some people just have bad business plans and fold before ever producing. Others drastically underestimate how much work there is in actually finishing something, and so instead of taking months it takes years. Some are just plain incompetent. A few might actually be scams. Caveat emptor.
As an engineer and occasional tinkerer, who happens to work with other engineers and tinkerers, and a follower of the maker movement, I've been following various projects on Kickstarter for a while. While the wireless watch seems neat, I'm not keen on dropping $115 on a watch I don't need, even if the project is really cool.
Instead, I've just made my first contribution to a more modest project: a circuit board with a solar cell that creates fireflies.
Posted by
-A
at
8:48 PM
0
comments
Labels: energy, kickstarter, make
Wednesday, January 18, 2012
TwinklePic: Orion
A good friend of ours was celebrating her son's 1-year birthday over the weekend. I decided that what the young'in needed was his very own twinkling nightlight. As it happened, I have a box of spare parts left over from Brynna's nightlight, so the day before the party I spent some quality time with a soldering iron and assembled another one.
This go-round I opted for the constellation Orion. I even gave it a slight twist by using a red LED for Betelgeuse, the left shoulder, which is a large red supergiant star. 


I even took the time to cut out recesses in the backing for the circuit board (which itself got mounted to the black acrylic with the LEDs) and for the battery pack. The device can also be run off USB power, like Brynna's is right now. But having battery power meant that I could show it off (just a little) at the party by flicking the switch and standing it like the picture frame it is.
One or two people at the party asked where she could get one. I have considered making them for sale, but the stark reality is that I probably couldn't sell them at a reasonable price ($25?) and make any money doing it. The trusty back-of-the-envelope tells me I'd need to scale up to at least 100 units for the economies of scale to approach breakeven on the parts cost (circuit board, LEDs, microcontroller, connectors, discretes, and soldering), but that doesn't even figure into the cost of my time to assemble each one, which at the moment is still considerable. If I were making a whole lot, I could really streamline things to reduce the labor. Even so, I don't think there's a large market for a $50 nightlight, even for one as cool as this.
Besides, there's something to be said for giving away a one-of-a-kind gift.
Posted by
-A
at
7:52 PM
1 comments
Labels: make, twinklepic
Tuesday, January 17, 2012
More Phone Repairs
We spent New Year's weekend with our very good friend Sara. Among the fun and relaxing things we did, she requested I bend my phone repair skills to her handset. It's not an iPhone, but rather a fairly normal-looking handset with a landscape-slider keyboard for texting. Alas, just a few weeks after getting it, it had a terrible run-in with the floor and ended up with a cracked screen. Thankfully, it is not nearly as pricey or dear as an iPhone, so she she was able to score a non-functional one off eBay for about $10. The only hitch was doing the screen transplant. Luckily I always travel with my fine tools! (not actually - she gave me advance notice.)
Despite the a couple of experiences, I wouldn't claim to be an expert at phone repair. Most phones, in fact, aren't meant to even be opened, let alone successfully repaired, once they leave the factory. But my training as an engineer, familiarity with electronics in general, and some experience with opening phones gives me just enough confidence to have a go. I void warranties with pride.
Although some internet searching yielded an extensive service manual for diagnosing electrical problems with oscilloscopes and logic analyzers, I could not actually find any teardown guide for this model phone online. So I took a deep breath and just winged it:


L to R: the slider screen, keyboard, logic board, back shell
Thankfully, it was only about five steps, ten screws, and maybe thirty minutes to liberate the sliding screen from the rest of the phone. Doing the same to the other phone took about 15, and reassembling both not much longer. By the time I was finished it was time for (yet another) fine dinner.
Posted by
-A
at
7:24 PM
0
comments
Saturday, November 12, 2011
More Repairs
Keeping in line with DIY repairs, I have this lovely bit of dental work to display:
OK, so it's not really dental work, but I prefer to think of it as wiring the Jetta's bumper shut. The front bumper and grille assembly is a stackup of several pieces, nearly all of them plastic. As far as I can tell, they all snap together with so many spring-hook features molded in. The lowermost, black ABS piece is essentially a skirt that reduces wind resistance, and elegantly curves under the grille and the forward section of the engine compartment. This means that dragging it backwards over anything (curbs, the concrete blocks at the end of parking spaces, snow berms left by the plow guy) has a tendency to break it.
After a number of years of abuse, after one of last winter's numerous storms, the passenger-side of the skirt broke away. After some time with it dragging on the pavement and looking sad, I decided it needed fixing, lest it catch on something and tear more of my car off. Last spring, I was able to reattach it to the bumper segment above. Where they meet is a sort of flange that the now-missing spring fingers originated. I was able to drill some holes and thru-bolt it back together. It was tricky work that mostly had to be done blindly by touch, but It was fairly clean from the outside.
About two weeks ago, I pulled just a little too far into a parking spot and caught the skirt on a concrete block. Pulling back ripped away my careful thru-bolt job. After some more time with the bumper segment flapping in the breeze, I decided to make a serious fix. Again with my drill I this time installed some bolts with nuts as studs, then used wire to cinch it all back together. 
Ain't it pretty? But for a 10-year old car with 94,000 miles on it, I am unlikely to replace the front bumper assembly just for looks.
Posted by
-A
at
8:01 PM
0
comments
Thursday, November 10, 2011
(not so) Quick Fix
Well, it was a difficult case, but I think he'll pull through. He may even be able to play the piano again.
I received a replacement iPhone 4 screen assembly in the mail today (thanks to iFixYouri, which was the least expensive not-so-shady place I found for this part). After B went to bed, I spread my tools out on the dining room table and set to work.
Those who are interested can follow the directions I used here from iFitIt.com. They really do such quality work! They rate this job as a 1-hour, Difficult repair. It is definitely not for the faint of heart. But I'm comfortable with doing delicate work. I deal with small electronics and fine mechanical assemblies on a near-daily basis for my job (though Apple takes it to one hell of an extreme). In true Yankee and Maker fashion I prefer to make-do and repair rather than replace. So let's have a go! It ended up being more like three hours due to my meticulous nature and some complications.
The most useful tool I used for this job was my non-magnetic, fine pinch tweezers. I cannot imagine doing this job without them: there were a few dozen tiny fasteners that needed to be carefully lifted out. From this and other repairs, I have developed a system for keeping them straight:
Yes, those labels I've written go up to about 27, as in Step #27. It takes a while to get down to the screen. In a thoroughly warranty-voiding operation, you approach it from the backside, remove the battery, the speaker assembly, the logic board (what a piece of work that is!), undo about a dozen tiny, high density connectors, before you can finally remove the screws that hold the screen to the stainless steel bezel.
However, once the screws are removed, the screen assembly does not simply fall off. In the vicinity of the Home button, below the edge of the screen itself, is a sizeable piece of double-sticky tape that helps to hold the front glass to the bottom section of the case. Since this is where the screen broke, it meant that my first attempts to remove the screen only caused more cracking and shattered glass. I did eventually get it off, but the double-sticky tape was left with a scree of glass shards that took a long while to remove.
Once the tape was more or less cleared of debris, the re-assembly with the new screen went pretty smoothly - just reverse the directions that got me there. I had no leftover parts, and I didn't have to force anything into place, so all seemed well.
Still, this is major surgery for a phone, so there was some apprehension when I turned the power back on. The screen lit up with that familiar Apple logo! It responded to my touch (ok, that's just a little too dirty)! As far as I can tell, everything works as well as it always had done. Cell reception is good, WiFi is strong, and no magic smoke was lost in the process. All in all, I call it a victory.
Posted by
-A
at
11:16 PM
0
comments
Friday, August 19, 2011
Slice...Damn
Thursday night I was working on one of my many concurrent projects. At the moment, I was taking n Xacto knife to a large (2-gal) plastic bin, trying to cut the top off. While scoring along the outside, a combination of the flimsy plastic wall, the flimsy narrow blade, and my own clumsiness resulted in the blade sliding off to one side...right across my left pinky. Cursing myself stupidity, I wrapped it tight with a heavy paper towel, and completed cutting the bottle before heading upstairs to survey the damage. A long, deep cut from along the top side of the digit, starting before the last knuckle and extending alongside the nail. It was doing a fair bit of bleeding, and was clearly deep enough to need stitches. This was the other shoe I was hoping wasn't about to drop, particularly right before a race weekend.
I turned to my doctor wife, wondering if she'd do the honors and stitch me up herself to spare me a trip to the ER. Alas, no. Even though we have some old sterile sutures kicking around, they were much too heavy gauge, and we didn't have any of the other necessities (needle driver, licocaine injection, etc.) to do a proper and clean job of it. So off I went.
Thankfully, it was a relatively quiet night, and I was seen relatively quickly. The nerve block to numb my finger took a few injections and 30 minutes to fully take effect, but after that it was pretty easy to get things cleaned up and stitched.
During my ample waiting time, I was already starting to conjure plans that would allow me to compete in Saturday's Timberman Sprint triathlon. The pinky finger is not generally needed for much of anything, but it's would not be a good idea to soak the wound and dressing in Lake Winnipesaukee. Gloves, tape, and creative sealing were in order.
Posted by
-A
at
9:15 PM
0
comments
Monday, February 21, 2011
TwinklePIC video
Parts 1, 2, 3, 4, 5, and 6
This will be the last post in the series - I promise. But someone pointed out to me that despite the (too) great pains I had taken to describe the twinkling effect, no one has actually seen it. So, ok, here's a quick video.
The videography is total crap: low resolution, poor dynamic range, overexposed in the dark, flicker from aliasing between the LED PWM and video framerate, streaks from the lens, etc. etc. But it does get the point across.
Posted by
-A
at
9:28 PM
1 comments
Labels: make, twinklepic, video
Saturday, February 19, 2011
TwinklePIC, part 6
Parts 1, 2, 3, 4, and 5
I now had a board, and I had a display. So it was a simple matter to just plug the board in and some USB power.
And lickety-split, it all came together.

Brynna is intrigued by it. I look forward to explaining this all to her (in about 10 years) in as much agonizing detail as she can tolerate. Unfortunately, as far as the original goal of the project goes - to create a twinkling nightlight - I'm afraid that it may not quite come to pass. There are a few reasons:
- Although LEDs are efficient, you have to remember that, on average, I'm converting less than 1 watt of electrical power into light. You'd get as much, or more, from an LED headlamp. The display is quite bright to look at, but it doesn't illuminate a room very much.
- These particular LEDs emit light in a fairly narrow cone. So in the dark they throw a very directed light across the room, but not much to light to the rest of the room. A different display construction, with more diffusers and scatter, could ameliorate this, but my appetite for that kind of tinkering is pretty limited.
- Brynna has gotten very used to the steady, soft-soft-white glow of the low-wattage CFL in the lamp in her room. She's been sleeping to that for over 18 months. She's pretty unwilling to let these LEDs replace that, although she may consent to let them augment. Recall that I'd first conceived of this project nearly three freakin years ago, before Brynna was even born. If I'd somehow managed to finish it before she could formulate opinions on her sleepytime lighting, I might have had a shot
This is not to say that it's all a failure. I learned some things and kept some of my electrical engineering skills from atrophying too much. Even if it doesn't work well as a night light, it is still an interesting curio in a lit room. The core design allows for some interesting possibilities. For instance, the LEDs needn't be all white. With a red, a blue, and a green LED, one can reproduce most any color. RGB LED clusters can be had, and I could use three channels from the TwinklePIC to drive em, and get a light element with a randomly-changing color. (As a matter of fact, I read about such a project in the latest issue of Make: magazine a few nights ago). I can use the TwinklePIC as a logic-level signal input to a much beefier LED driver, permitting arbitrarily large light output. The design is modular, so I can have two boards driving 16 channels, 3 boards for 24, etc. I have seen set ups where small plastic or glass fibers have been embedded in ceiling plaster, than sanded and exposed, with a remote light source to light them up, By bundling the fibers in random arrangements back to some number of TwinklePIC boards, we could give the B an entire twinkling night sky!
How very typical of me: to think up a dozen potential projects that I'll never have time for just as I reach the finish line for one.
Posted by
-A
at
9:31 PM
0
comments
Labels: make, twinklepic
Friday, February 18, 2011
TwinklePIC, part 5
Parts 1, 2, 3, and 4
So after making my first hand-wired prototype, I decided to make a printed-circuit-board version of the same. Why? Well, a PCB is a whole lot cleaner and more durable. It also is a whole lot faster to assemble (populate), because all you need to do is solder the components in place - all the wiring between components is contained in the board. The downside is the extra time to lay the circuits out on computer, the time to get the boards made, and the expense.
Strictly speaking, because this whole project is likely to be a one-off, I didn't need to go this far. I could have just boxed up the prototype board and called it good. Sometimes being an engineer is knowing when to do just that and move on. I do take pride in my work, though, even my at-home projects, and I wanted to produce a clean result. Part of this whole project was to flex some seldom-used skills, too, like circuit layout. Plus, there was (still is) the off chance that someone might see the results and say "Neat! Where can I get one?" in which case populating a PCB is a lot easier than hand-wiring another. One more aspect of it is that, if I ever wanted to share this project with the wider Maker community - open-source it - a complete design with PCB is much more attractive than a code listing and a half-assed circuit schematic.
Although I have access to some very powerful PCB layout programs at my office, the learning curve on them is steep. I have tinkered around with the free Eagle program before, and could use it on my laptop at home, so that's where I did the design. You start by creating a circuit schematic, then find or create PCB footprints for each component, then arrange the footprints on the board, then draw the traces to connect the pins together. 

Being a perfectionist, I tend to tweak such things a lot more than is necessary. Also, because the place that makes my boards charges by the square inch, and because I'm a cheapskate, I strove to shrink the overall board size down, which requires more tweaking. I was able to get this design down to about 3 sq in, or about $7 ($10 with S&H). My Eagle library didn't have footprints for most of the components I used, so I had to create them. All-in-all, it was a huge time suck. But the results are nice:
Some notable additions I put on the board that were lacking from the hand-wired prototype. First, I added a USB-mini connector, so that I could power the thing from any USB source. I still have pins where I could wire in 3-5.5 V from, say, a battery, and a jumper that would allow me to select between sources. As a protective measure, no matter the power source, I added a 500 mA fuse. The white connector along the top edge is my ICSP (in-circuit serial programming) header, which lets me reprogram the chip while its still in the circuit. The layout of the resistors is such that one can, as I have done, solder in each resistor, or replace it with a resistory array chip, or replace that with a chip socket, which allows easy swapping of resistor values. Why would you want the resistors to have different values from each other? The resistor value, more or less, sets the maximum brightness for each channel. So if you wanted a create a constellation of "stars" with different magnitudes, you could do that without customizing the program on the chip.
Some may notice that I have stuck to the 0.1"-pitch thru-hole components. I didn't need to. In fact, I could have probably cut the PCB size in half by replacing the PIC, connector, and LED resistors with surface-mounted components. But I still like the flexibility that I have here with the larger components. Sticking the PIC in a chip socket, for instance, allows me to easily replace it if I blow one up.
I kept the same large connector so that I could interface to the existing LED cable I'd made. Another person could solder the LED leads directly to the board and skip the connector.
Posted by
-A
at
8:40 PM
0
comments
Labels: make, twinklepic
Thursday, February 17, 2011
TwinklePIC, part 4
Parts 1, 2, and 3
So, I had a circuit that worked and a program that made the LEDs twinkle nicely. But that is only part of the story: I also needed to dress it all up into a pleasing display. In truth, the soldering and programming were fun little exercises; industrial design is not something I would claim to have any talent with.
The Cosmic Nightlight that was the original inspiration for this project embedded its LEDs in a clear epoxy resin, into which was mixed streaks of color and children's glitter. The LEDs were arranged into the constellation Leo.
The results were very nice, and originally I planned to do the same. But in the end I decided to take a different approach. The epoxy was more labor-intensive than I wanted - and permanent! The author's nightlight was 3" x 6", dictated by the mold he used. I wanted something larger. In the end I decided on the following construction: I would embed the LEDs into a piece of 8" x 10" black acrylic, and set that into an ordinary picture frame. Much easier to just drill some holes!
I pondered what constellation, if any, to base the work on. I decided to make the Pleiades cluster:
It's beautiful, it's visible to the naked eye, it's a little off the beaten path, it has tons of history and legend associated with it, and it's the inspiration for the Subaru logo. Plus, I was using white LEDs for this project, many of which tend to have a slightly bluish tint to them, so a constellation filled with blue giants seemed appropriate.
Since my presentation was going to be pretty spare - no glitter or extraneous coloring - I at least wanted to go for fidelity. I could perhaps have found measurements of where each star is located in the sky, then transferred that to my 8 x 10 acrylic. I could have done it freehand. Instead, I went a much easier route, and made an 8 x 10 printout that I could tape to the acrylic, using the star locations as my drill locations. I found it much easier to first invert the image and print it black and white. It is well known that humans are better at picking out black spots on a white background than the other way 'round. This saved a lot of ink, too.
This then was the pattern I used to drill holes in the acrylic. I plugged the holes with the LEDs on wires that I showed in the previous post.
One thing I soon realized, however, was that these particular LEDs shone their light in a relatively narrow beam. In the dark, they were dazzling when viewed head-on, but didn't throw much light off-angle. There are things I could have done to combat this, including just getting different LEDs. But laziness won out, and I have just decided to live with it for now.
One thing I did to ameliorate the narrow-beam effect: I replaced the picture frame's original piece of clear plate glass with a piece of frosted glass. It doesn't do much for illuminating an entire room, but it does produce a nicer look from the side.
You'll notice that the stars in the cluster are not all the same brightness. I could have adjusted the program so that some of the stars were always brighter than their fellows. A better way would be to adjust it in hardware: each LED has a resistor in series with it. The resistor value has the effect of setting the maximum brightness: a greater resistance would result in a dimmer LED. The apparent magnitude of all the stars are well known. It would have been trivial to figure out what resistor values to use to get the relative brightnesses of the LEDs to match. Again, laziness won out, and I haven't gone to that length yet.
My intention originally had been to power this device from batteries. Based on testing I did with my prototype circuit, a fresh pair of AA alkalines would nicely light Brynna's room each night for just over a week. In that case, I planned on routing out a groove in the wood of the picture frame, and installing metal contacts at either end, so that I could indeed have the batteries as part of the frame. But then I got to thinking about all the batteries I'd be using over the years: it's unconscionable. Rechargeables were an option, but with shorter runtime. Plus, as the batteries drained, the LEDs would get dimmer.
Instead, I decided that the best long-term solution would be to power it from a high-efficiency AC/DC converter. A USB power adapter would do the trick nicely: they're easy to find, relatively inexpensive, can be really tiny, and can be extremely efficient. I'm presently using the adapter from the current generation of iPhone: it's >90% efficient, zero vampire current, and less than one inch cubed. The USB cord, and required proximity to an outlet, are a livable compromise.
You may recall that I also installed a mode-selecting switch, which would toggle the LEDs from twinkling to solid to off to twinkling again. This I planned to install on one corner of the picture frame. If I installed it on the front it would be easy to find, but a bit of an eyesore. Instead, I planned to install it on the back side of the frame, so that to activate the switch all one need do is push that corner of the frame as it hangs on the wall.
How does it look? You'll have to wait for the 6th and final installment. Before that, we'll revisit the electrical circuit, and how I transformed it into a printed circuit board.
Posted by
-A
at
5:13 PM
0
comments
Labels: make, subaru, twinklepic
Wednesday, February 16, 2011
TwinklePIC, part 3
Parts 1 and 2
So I had a program running on the microcontroller I was happy with. I had a circuit that worked well on a breadboard. The next step was to package up into a more permanent form - something a bit more durable, and a whole lot smaller.
The first real prototype I spun (completed in early summer 2010) was done in what is called perf board, meaning that it is perforated with a grid of holes spaced evenly apart. Most perf board is done with holes on 0.1" centers, which matches the pitch of a lot of thru-hole components. This is a good scale for hand-soldering, prototyping, and reworking, because it is a decent match for the unassisted abilities of human eyes and hands. Most circuits produced today are done with components that are fantastically small and really only workable by machine.
You can see that, when it comes down to it, there isn't a whole lot to the circuit. There's the chip running everything, a crystal to provide a clock signal, a resistor for each LED channel, a header for all the LED connections, and a button for mode-switching. Power comes in at either the male or female header above the chip. The big empty space to the left is there to let me zip-tie a holster of AA batteries for power.
The actual wiring isn't all that bad, either.
The connector really dwarfs everything else. There are lots of smaller connectors I could have used, but this one was handy, and it was easy to attach a bit of ribbon cable with the LEDs soldered at the end. Why even have a connector? Why not just solder the LED wire leads directly to the board? Well, this was still a prototype, and I liked the notion of being able to swap out one board for another, or make the cable longer or shorter, with resoldering everything. Modularity is good.
And it works! Hurray!
But while this bundle of LEDs looked nice when taped to my monitor at work, it still wasn't what I was aiming for. I still needed to assemble them into a constellation.
Plus, while this prototyped board worked pretty well, there were still things I wanted to do differently with it. Like the ability to power it from USB. Or cutting down the assembly time of the next unit (if there ever was one) to less than an hour. Or making it a bit tidier and compact overall. For this, I would need to get away from a hand-wired prototype and enshrine it in that most preferred of circuit media: the printed circuit board.
Posted by
-A
at
3:54 PM
0
comments
Labels: make, twinklepic
Tuesday, February 15, 2011
TwinklePIC, part 2
Wait. Part 2? Was there even a part 1? Only the most devoted readers, endowed with prodigious memory, will remember that, oh, about a year ago, I started writing about a little electronics project I was cooking: a device that would have a number of LEDs in a constellation, each of which would twinkle - randomly fade in an out. The project has, throughout its entire 3-year existence, moved in fits and starts. As I have just about finished it, it is clear that documenting it has faired even worse than the actual doing of it. I hope to get it all out to you, dear readers, in the next few days.
To adjust the brightness of an LED is a straightforward task in electronics: just turn it on and off very fast. By varying the ratio of On time to Off time (also called the duty cycle), you can adjust the apparent brightness (your eyes and brain blur it together). This is a technique called pulse width modulation (PWM) and, as I said, is a straightforward task to do with a microcontroller.
What's a microcontroller? Think of it like a really small, very limited computer. Microcontrollers run small computer programs that are burned into the device itself (no hard drives here). There's a general-purpose microcontroller in your TV remote control, and one in your microwave. Is the brain of your cellphone a microcontroller? Or the latest screamer from Intel residing in your laptop? That is largely a matter of semantics and degree.
Microcontrollers are made by lots of different chip manufacturers, with feature sets and price points that run from the very mundane to "holy shit." For this twinkling lights project, there are hundreds of models that would do the job in the range of $1-15. At the time that I started tinkering (Dec 2009), I was already using some products from Microchip in my job. So, I went with what I was then familiar with and chose a member of the PIC16 family. Nowadays I am using some snazzy chips from Texas Instruments, and were I to do this overagain I might consider using a low-end member of the MSP430 family.
I also considered using an Arduino. For those that do not know, the Arduino is an open-source platform that is very popular in the Maker community. The Arduino is, essentially, just another microcontroller (made by Atmel), but it is very user-friendly and has a shallow learning curve. It is made to be accessible to novices - much of the nitty gritty is glossed over and made easy for you. A complete board (not just the bare chip) can be had for $30 - all the other tools (including a vast library of community-developed example code) are free. I decided against it in part because, in the goal of making it user friendly, they add a layer between the user and the silicon. That is handy if you know nothing about it, but I specifically wanted to run close to the silicon.
There are three timing tasks involved in getting an LED to twinkle. The first I have already mentioned: using PWM to set the brightness. The next is to vary the brightness by changing the duty cycle. This causes the brightness to change in time: fade in and fade out. The final task is to change the speed of that fading in and out over time, so that one minute the LED will fade slowly, and the next minute quickly. Figure this out for one channel, and you can scale it up to any number of channels. Put enough channels together, and I'd have a constellation of twinkling stars.
If anyone is interested in the details of the code, let me know. I might, at some point, find a place to put the entire design: circuit, PCB, and code listing. For now, let me summarize how I do each of those three tasks.
1) PWM. Many microcontrollers have special circuits that make this almost auto-pilot. Not many low-end microcontrollers can do this for, say, 8 channels at once. So, I brute forced it in software. I have one variable that counts up and up. When that timer value, T, reaches some maximum (65,000, or 2^16, if you care), it rolls over to zero. An LED channel has a number associated with it, which I'll call D. Since I have multiple LED channels, I'll call them D1, D2, etc. When the timer T rolls over to zero, I turn all the LEDs on. When the timer has counted up to D1, I turn that LED off. If D1 happened to be, say, 30,000, then that LED will end up spending about half of the time turned on, for a duty cycle of 50%. To make it appear convincing, the amount of time I spend on or off must be very short, otherwise the eye will catch it. So, I turn the LEDs on and off about 120 times per second.
2) Fading. If at some point I decide to change the value of D, I will change the duty cycle of that LED. If D becomes 10,000, the duty cycle will drop to about 15%, and the LED will appear dim. If I change it to, say, 43,000, the duty cycle will be closer to 75%. To make a convincing fading effect, I need to adjust D gradually and smoothly. So, about 10 times per second, I add or subtract a small amount, call it F. I'll increase D, in increments of F, all the way up to the max brightness. When I hit that ceiling, I'll turn around and start subtracting F from D. I keep decreasing D all the way back down to zero, then start increasing it again.
3) Change the Fading. Steps 1 and 2 are enough to make an LED smoothly get brighter or dimmer at a regular pace. If you've ever seen an Apple computer sleeping in the last 10 years, you'll see the power light doing this. The third element is to change the pace of that fading - make it happen faster or slower. To accomplish that, I need to make F change over time. This I do by, unsurprisingly, adding or subtracting a small, random, amount to F a few times per minute.
Scale this up so that I'm doing steps 1-3 on eight independent channels at once, and I get a pretty constellation of stars. Each channel fades in and out with its own speed, which is different than that of all the others, and which itself changes over the course of minutes. The resulting effect is, I would say, pretty nice.
Believe it or not, this is a very long winded explanation of what, in reality, only takes about 50 lines of computer code. This gets translated into a stream of about a thousand 1s and 0s, which gets imprinted onto the PIC16F684 microcontroller. This chip has 14 pins, costs less than $2, and can be used to drive 8 LED channels. Here's a prototype circuit I put together in early Jan 2010:
To the center-right there is a small pushbutton. This can be used to switch the display mode. The default is for each LED to twinkle randomly. Other modes set all the LEDs to a steady brightness (100%, 50%, etc.). The last mode is a sleep mode where everything is off, and the circuit draws next to no power. This is handy for battery-powered applications.
Coming up in part 3: how I take this prototype circuit and fancify it!
Posted by
-A
at
7:52 PM
1 comments
Labels: make, twinklepic
Sunday, December 12, 2010
Sink Repair
A few months back I did some repair to the 2nd-floor shower. I prefaced it by saying that plumbing repair is something that I approach with some trepidation, because even though it is a straightforward trade, even the smallest jobs seem to become involved projects, and the potential consequences for getting it wrong can be pretty bad.
So when I resolved to delve into why the 2nd-floor sink was draining very slowly, I approached the job with the same reservation I did with the shower. But I am a homeowner, dammit, and I can Do It Myself! This repair, like the last, involved a lot of cursing, particularly at those unknown people responsible for the state of things. Why, for instance, does the sink not have shut-off valves for the hot and cold supplies? Why would you slather five coats of paint all over the pipes and fittings, knowing that it would make it impossible to properly service the thing without chipping that paint away? Why bolt a sink to the wall in the first place, leaving the plumbing underneath exposed?
In any event I grit my teeth and dived in. I did not have the presence of mind at the outset to get a picture of the plumbing before I started. At the time, I didn't think that I would end up replacing most of it. I undid the slip joints for the trap, breaking a lot of old and peeling paint, and not a small amount of rust and corroded copper. The drain - from sink to floor had a nice, gooey, disgusting, but mercifully removable 1/4" coating of accumulated slime. This would go a long way to explaining why the drain was slow. The trap - a single cast piece of brass that was certainly decades old - had a removable plug at the bottom to help with cleaning. I pulled a nice motherlode of unidentified gunk from there, too.
Twenty minutes well spent: I started reassembling things. It was here, while tightening the last joint between the trap and the drain pipe sprouting from the floor, that things took a bad turn. My pliers slipped, and I ended up crunching a 1/4"-square window right through the pipe. The pipe, as I noticed when I had everything disassembled, was chrome-plated brass, heavily corroded, with walls not much thicker than aluminum foil. I could chip away at the edge of it with my fingernail. The coats of paint on it were probably structural. My first quick-fix solution was, of course, to wrap it in duct tape. This, however, was not watertight, partly because the crack extended into the joint, but also because it was hard to get a good purchase on the old paint.
The real solution was to lop the pipe off and hope that it was more sound a few inches below. However, this meant that I would need to somehow extend the pipe somewhere else to make up the difference. This spawned trip to the hardware store #1. I purchased a 6" pipe extender and, for good measure, a replacement sink drain assembly. The sink drain assembly is what mates the pipes to the ceramic bowl of the sink. There's a flange - the part you see at the bottom of the sink, which is threaded into the pipe that extends down below. This length of pipe usually also has the built-in plug that you can open or close by pulling the knob between the faucet handles. How it seals to the sink is actually underneath: a big rubber washer gets pressed to the underside of the sink with a wide nut.
The new sink drain assembly went in easily enough. The old one was very reluctant to leave, however: it had basically been frozen immobile by accumulated corrosion and grime. The resulting splatter when I broke it loose was unpleasant to say the least. But I'm a man! A Handyman! A Homeowner! and I laugh in the face of such trails!
Next came the old trap. Before I screwed the plug back into it, I started chipping away at some of the accumulated paint. I did not realize at first, but I was also managing to chip away the dried and cracked gasket that sealed the plug to the trap itself. Casting about for a suitable gasket material from which to cut a replacement, I settled on garden hose: slit it down its length lay it flat, it actually has a decently rubbery inside lining. Close Enough, I declared. And, believe it or not, this worked.
Chopping down the old drain pipe proved difficult. I first tried a pipecutter, but all it did was flex the flimsy thing out of round, which opened up a nice crack along its length. Next I tried a hacksaw. This worked at first but, as the cut progressed, the pipe began to chatter so much that I worried about breaking it more. My final solution: tin snips.
I assembled it all back together, tightened everything down, and turned on the faucet to test. It worked at first, but after a few minutes I started seeing drips welling from, well, every single joint. Cursing, and knowing that I wouldn't really be able to live with a drain that leaked that badly, I started poking around to diagnose. My conclusion: none of the joints were lined up properly; they were all slightly askew, which made it difficult to get a good seal. The root of this problem stemmed from the fact that the location of drain pipe in the floor and the sink above, and the fact that the trap that joins them is a single rigid piece, leaves little room for misalignment.
So came trip to the hardware store #2: I purchased a new trap assembly. This one, however, broke the S-bend into two parts, which can take up a lot of misalignment between the pipes above and below. For good measure, I disassembled the new sink drain assembly and, while reassembling it, applied liberal amounts of caulking. The joint where the trap meets the drain pipe in the floor received similar treatment. Then I left it to cure overnight:
So $40 in materials, two trips to the hardware store, and about five hours later, the slow drain has been fixed. A Pyrrhic victory?
Posted by
-A
at
10:19 PM
0
comments
Friday, October 22, 2010
Porch Rebuilding
When we bought our house, we knew that the porch was not in great shape. One side of the porch is significantly, uh, bouncier than the other. The dryer, for whatever reason, was plumbed to vent directly under that corner of the porch. The fact that you can look underneath and see flagging supports, buttressed joists, and other patchwork fixes does not inspire confidence. Last fall we had a significant chunk of one of the posts replaced with new wood, because it was rotted through and through, and we didn't fancy having the porch roof collapse after a heavy snowstorm. The front steps leading up to the porch are a terrible hack-job of carpentry, and the hand rails on either side wouldn't survive a swift kick.
Of particular concern is the paint on the decking, balusters, railings, and posts: it is cracking and chipping all over the place. Seeing as the house was built in 1916, it is almost certain that at least the lowest coat is lead-based. The railing is just about at the height of Brynna's mouth which, needless to say, makes us nervous. Properly stripping and lead-abating all those spindles, the posts, the decking, and the rest would be the work of an army for the next five years. It is just as well, the bottom section of just about every single baluster is rotted through and through. Here's one that I ripped out, quite literally, with my bare hands:

See what I mean?
I guess I can't fault the balusters all that much - they are nearly 100 years old, and clearly the purple paint job was not very well done. They are most definitely finished, and not worth salvaging. Neither is the decking, nor the framework underneath, nor the steps attached to it. The posts are in decent shape, as are the upper decorative railings and the roof itself.
So, we have resolved this fall to rebuild the porch. In a way, the dilapidated state of things makes our choices pretty clear: tear out anything suspect and build new. Our carpenter and I had already agreed on recycled plastic decking, so that it need never be painted again. The frame underneath would get a few new footings and joists 12" on center for additional rigidity. The load-bearing posts will get stripped in place to bare wood and refinished properly.
(This is a job that I would gladly undertake on my own. It's within my capabilities, would give me great satisfaction in the doing and in the observing, and would let me make good use of and expand my tools. Alas, I have gradually come to accept that ability and opportunity are two very different things and, if I want this job started and finished in the next ten years, I really will have to pay someone else to do it)
A sticking point, however, were the balusters. It turns out that our railings are a lot lower than code requires these days, so we could find no suitable replacements in any catalog that were short enough that offered even a similar-looking profile. Our carpenter shopped it around to a handful of places, and came back with costs averaging about $50 each. Considering that there are 80+ spindles to replace, that comes to a rather eye-popping total.
When our carpenter's latest lead didn't pan out, I took matters into my own hands. I yanked one spindle free, scraped it clean of most of its paint, and measured it out. As an engineer, creating models of existing parts it something I'm rather experienced at. Besides, I had just recently bought a set of 12" Mitutoyo dial calipers second-hand from a guy in the area, and this gave me a fine excuse to use them. After sketching out the key dimensions on paper, I created a detailed model of the part in Pro/E, a CAD package I use daily. From this I created a 1:1 drawing, which I then sent to several area woodsmiths for a quotation.
One wood turner not far from Concord responded favorably and, after some back and forth about this and that detail of form, construction, and material, etc., we came to a deal that was about half what we had been seeing. The new balusters will be nearly identical copies, authentic to the time period, plantation-raised mahogany that should well last another 100 years. I considered that a few hours well spent!
Posted by
-A
at
9:23 PM
0
comments
Labels: house, make, porch, woodworking
Saturday, September 25, 2010
Plumbing
Today I managed to pull off a bit of plumbing repair. Plumbing is something that I usually approach with some trepidation: it seems deceptively easy (just connect the pipes, dummy), yet it almost always causes me grief whenever I take it on. Plus, unlike electrical work, where a few sparks will trip a breaker and you're all set, a plumbing problem will result in a great deal of mess and possibly some real damage.
But the situation was serious: our shower was failing. Unlike our kitchen, which was a main selling point of the house, we have no great love of the bathroom on the second floor. It is cramped, it's equipment is shoddy and poorly constructed, it looks like it was finished by a 7-year old, it has no logical storage for towels and the like, and it doesn't strictly speaking even meet code (example: there are no shutoff valves accessible for either the sink nor the shower). Our ultimate desire is to gut to it the studs and rebuild it completely. However, that is no small task, and is something we plan to wrap in with other, structural, renovations that are farther down the line. So, we have resolved to live with whatever aesthetic and functional deficiencies it presently has.
But the shower was failing. The mechanism built into the tub spout that diverts water up to the showerhead was no longer sealing very well. As a result, about half the water would be diverted up, and about half would spray from the tub spout. This meant that we were using a prodigious amount of water, and yet getting very little benefit from it. What is more, the initial priming of the shower spout - that first surge of water up the pipe to the showerhead - was increasingly loud. The noise and the waste annoyed me enough that half the time for the last few weeks I've been taking navy showers.
I had poked around at the tub spout a bit in the past, but found it fairly opaque in terms of its repair options. It is one of the very particular things I dislike about this shower's construction: you can't service any of it. The pipes, joints, fittings, and all crucial workings are sealed within the stud wall separating it from the toilet, and so there is no possibility of accessing them without half-tearing the wall apart. When we do embark on our grand renovation, I shall be sure that a proper access panel or three gets added, and all of the plumbing fixtures replaced with more sensible hardware.
Today I did finally resolve to figure out what was going on. Failing at that, I'd bite the bullet and call in the plumber. After some poking around and craning my neck, and some creative work with my Gerber tool, I was able to extract the cause of the problem:
The lever you see if what gets pulled up to divert water up to the shower. As you can see, it raises a sort of gate that, presumably, shuts off the tub spout. The black gasket is what is supposed to do the shutting off. The problem is that this gasket is supposed to be a nice continuous circle, not a torn C.
Reflecting on the design of this contraption, I kept hearing over and over a line about another contraption seen in The Ghost and the Darkness:
"Are you running a high fever, man? How could you conceive of something so idiotic."
Apparently, this kind of design for a tub diversion spout is widespread. And yet to think that sliding a circular gasket like this would work as a watertight seal after the first few dozen times is ludicrous!
Unfortunately, the current state of the world is such that I would have to spend a few hours scrounging around a junkyard to be able to hope to find a matching, replacement gasket. Perhaps a plumber would have [Holy Crap! while composing this a 3.1 earthquake came rumbling through!] a drawer of them somewhere, a vast array of ten different sizes from each of a hundred different manufacturers and models, but I would have no such luck. In the end, I had to replace the whole spout assembly - a $20 part - to be able to fix a ten-cent piece of rubber. A hassle-free shower is definitely worth $20 to the family; it's not the money that irks me. Nor is it even the time it took me to fix what I hold to be a terrible design. What bugs me is that, in our modern world of mass-produced consumerism, the best way to replace the nickel-sized gasket from a cheap piece of crap was to buy...another cheap piece of crap.
And don't even get me started on the slow drain!
Posted by
-A
at
11:57 PM
0
comments
Sunday, May 16, 2010
TwinklePIC, part I
My personal project "To Do" list is approximately 427 meters long. Although I sometimes have bursts of productivity, the list seems to grow faster than I'm able to scratch things off. Sometimes, though, projects that seemed buried by the passage of time do eventually get done. I'm in the midst of such a one right now that is at least through its first working prototype. I call it: TwinklePIC.
When I say buried by the passage of time, I really do mean it. The inspiration for this piece came from an article in Make: magazine that I read when I visited Hilary in Scottsdale, when she was six months pregnant with Brynna! The original article described making a Cosmic Night Light brick from LEDs and cleverly layered cast epoxy. The LEDs were arranged in the form of a constellation - Leo in this case. The front-most layer of epoxy was clear, but with glitter and such mixed in. Then came the layers that held the LEDs in place in the constellation, culminating in a black layer to hide the electronic guts of the thing. The LEDs were wired in parallel to a coin cell battery through an ordinary switch. A feature of the project was that it wouldn't require soldering - the components were instead connected with just wrapped wire.
I thought this would be a great thing to give to my as-yet-unnamed daughter. But one thing happened, then another, and another, and a year and a half goes by.
I could make the plausible defense that I was a little busy in that time, but that would be both obvious and lame. A more dignified way to put it is to say that I was mulling the design over...very, very carefully. The original night light project is indeed pretty cool, but I wondered about the utility of a night light that ran for, perhaps, ten hours on a single battery. Plus, the light is only ever on or off. "Is it not in the nature of a light to only be on or off?" you ask. Well, yes, that's mostly true. But it is the nature of a star, as seen through our shimmering atmosphere, to twinkle. I wanted Brynna to have stars that would twinkle.
Getting LEDs to twinkle by fading in and out is not especially difficult - just wander the aisles of and big box store around Christmastime to see what I mean. This can be accomplished by several electronic techniques, the most common one is called pulse width modulation (PWM). It boils down to turning an LED on and off so fast your eye blurs it all together. Varying the ratio of on time to off time (what is called the duty cycle) changes the apparent brightness. I may have more to say about that in a later post.
So I knew how to make a light fade in and out. But I wanted not one light, but to build a bunch of LEDs into a constellation of some sort. It would be disappointing if they all faded in and out in unison. They'd have to be staggered. Still, if they all faded in and out at the same rate, but were just offset from one another, the effect would still be unrealistic because you'd immediately sense the repeating pattern. They'd all have to fade in and out at different rates: one would fade once per second, another would have once every other second, etc. But even then I wouldn't really be satisfied, because you'd still notice repeating patterns when, for instance, the one-per-second LED and once-every-other-second LED fell into unison. This sort of matching is desirable when pairing up the sopranos and the tenors, or for tuning a guitar, but I wouldn't consider it all that impressive a visual effect. I toyed around with making the different rates prime numbers (fading every 2, 3, 5, 7, 11, 13, etc. seconds), so that LEDs would only occassionally fall into unison. But you'd then end up with the situation where one LED would always be blinking fast, and others would be cursed to always blink slow. Boring - and again not very true to life.
No, this here twinkling effect would need to have each light fading at its own, independent rate, and that rate would also need to change in time. An LED would start off fading in and out rapidly, but over minutes would slow down, then speed up a little, all while the other LEDs were doing the same. In other words - the fade effect would need to be (or at least appear) random. Now that's twinkling.
I didn't spend the whole of the intervening 18 months mulling this over, but you can see I gave it some thought.
In the next post - an introduction to how I actually got down to it and started making this happen.
Posted by
-A
at
9:07 PM
1 comments
Labels: make, twinklepic
Wednesday, April 21, 2010
iPhone Surgery
The recent scoop about the (possible) lost-and-found 4th-gen iPhone prototype has me thinking that, come June/July, it might be time for an upgrade. I was, through the great beneficence of Hilary's grandfather, able to be an early adopter and bought a first-generation iPhone when it came out. That phone, minus some glitches, has served me well for the last three years. Still, it does feel a bit sluggish in loading and using apps compared to Hilary's more recent 3GS model, and it would be nice to have that faster connectivity. If the rumors about it using the A4 processor are true, it should be a screamer indeed.
Still, I've got a couple months ahead of me where I shall continue to depend on the phone I've got. Like I said, it has served me well for a bunch of years now. I did have this one weird glitch last year where, for whatever reason, it stopped recognizing when I had the headset plugged in. This is kinda important for the iPhone, because when the headset is plugged in, sound gets piped to that headphone jack, not the built-in speaker, and the phone gets its voice input from the headset mic, not the built-in one. It was an inconsistent glitch, but it meant that I couldn't properly use it as a phone, and sometimes the music wouldn't play in the headphones, so it was a problem. I purchased a replacement headphone jack assembly (which also includes the vibe motor, power switch, silent switch, and volume up/down switches in one wicked rigid-flex assembly) from the ever-reliable iFixIt.com, perused their step-by-step guide on how to change it, and was all set to attempt the repair myself. But I got busy, and after a week or two it resolved itself. So I set aside the replacement part and mostly forgot about it.
That is, at least, until Tuesday afternoon, when the same problem cropped up. This time I was determined to fix the problem and get on with things. So after Brynna went to bed that night, I laid out my tools and a cuppa on the dining room table and set to work. 
Those who are interested can read online about how to break into an iPhone, which was not really meant to be opened by mere mortals. It's not quite for the faint of heart, but with patience and a little delicacy, I'd say most people can do it. Most people who aren't too fussed about putting a few dings into that immaculate case, that is. Being 2.5+ years old, it was already well outside of warranty, and had some battle scars from wide travels, so in I went.
It took about 40 minutes to get the black plastic antenna cover off, and perhaps another hour to get the aluminum back case off. I bent the edge of the case a bit in the process, but being metal I was able to bend it back right again (more or less). After that it was a straightforward task of removing a half dozen tiny screws and extracting the old headphone jack assembly. Putting it back together with the new assembly only took about 15 minutes.
Feeling pretty pleased with myself, I tested it out.
Nope. Not fixed.
Not any more broken, mind you. I hadn't made things worse, I just hadn't made them better.
By this point it was after midnight, so I decided to call it quits for the night and hope for the best. The following morning, however, proved that I had succeeded last night in doing just one thing: making the inconsistent glitch perfectly and totally consistent. The iPhone, for its own inscrutable reasons, had things backwards: when I plugged the headset in, it believed it was unplugged; when unplugged, it thought it was there. As a result, when Mark called me in the afternoon, we couldn't hear each other at first because my phone believed that the headset mic was connected, when I was speaking into the built-in mic. We were able to talk to each other a few minutes later, but that required me to hold the phone to my ear normally, but have the headset dangling off the back. I guess I could live with that situation for a few months until the next iPhone comes out, but it would have been pretty annoying.
A little more poking around on the internet illuminated a possible culprit: lint. The headphone jack has a number of small, springy electrical contacts (left ear, right ear, mic, ground), and additional contacts that tell the iPhone when the headset is plugged in. These contacts are so small (half a millimeter, perhaps) that a piece of lint or other debris can prevent the contact from being made. People have tried compressed air, tiny screwdrivers, and alcohol swabbing to fix the problem with mixed success. I also noticed a post that indicated that the replacement part I had installed on Tuesday was actually a slightly newer version of the part I had replaced, a version incompatible with my early-build first-gen iPhone.
But, I also did find this post by a guy who seemed to have a decent grasp of the problem and offered a solution. It required not only cracking into the iPhone again, but actually doing a little exploratory surgery on the headphone jack itself to properly clean the innermost contact, the one that tells the phone when the headset is plugged in.
So Wednesday night I performed the fix for a second time. I did the aforementioned cleaning on the headphone jack assembly I had taken out the night before. I then opened up the iPhone once again. Partly because it had already been broken into, and partly because I was feeling a bit more confident and familiar, it took me all of ten minutes to remove the covers this time. Before making the swap, I plugged the newly cleaned and freely-dangling headphone jack assembly into the exposed guts of my phone to test things out. Sure enough, the problem was fixed. After that it was just the mechanics of swapping out the new headphone jack assembly with the phone's original one and closing things back up again. In and out in less than an hour.
I figure I've renewed my geek cred for at least the next month.
And hey, it's Earth Day, so let's all celebrate by repairing more things instead of replacing!
Posted by
-A
at
9:53 PM
2
comments
Sunday, January 17, 2010
DEH-do

Or, as most of the rest of the world knows them, Lego. Brynna received a box of large-sized Duplo Legos for christmas from her Aunt, and has really taken to them. She can, when the moods strikes her, amuse herself with building Lego towers for a substantial period of time - 20 to 30 minutes at a stretch, which is a really, really long time for her to be occupied on any one thing at this age.
Daughter of an engineer? You better believe it!
Posted by
-A
at
8:21 PM
1 comments
