Monday, October 31, 2011

"Slo-Flo" Tree Watering Bucket

It has been a hot and dry summer in my neck of the woods.  Hot and dry enough that many of us are worried about our trees dying.  Even though the heat has more-or-less died off, the drought lingers.  So, a few months back I modified some perfectly good 5 Gal buckets to provide some slow flow watering to our most susceptible young trees.

The key to making sure that water is not wasted is to water slowly to prevent run-off.  So a small hole is drilled in the bottom.  I recommend the hole be made near the outer edge.  Odds are you will not be able to set the bucket level, so use this to help make sure all of the water drains out by rotating it so the hole is at the lowest point.  (To make this easier, I marked this point on the side of the bucket.) The lid is used to help keep out debris, the hole in the lid makes it easy to quickly refill the bucked with a hose.  Detailed instructions and hole measurements are provided in the following 45-second video/slideshow.

Simple and effective.  With the small hole I used, the 5-gal bucket will empty in under 1-hour.

Friday, June 24, 2011

Not for Cat Lovers

This is hack features one of the funniest hack videos I've seen yet:

Saturday, June 18, 2011

Keypad Controller Demo Video & Walk-through

Video Walk-through: 

Demo: Power-on the phone, then wait to boot.  Next, dial 0-1-2-3-4-5-6-7-8-9-#-* then key down, down, down, down, up, down, OK, wait a couple of seconds, then cancel.  Repeat dial sequence two more times.  Then power key again to turn it off.  Then a quick tour of the hardware...

Tour of the hardware:  The phone is an LG "Flare" (LX165) from Virgin Mobile.  There are 24 keypad buttons on this phone.  The phone is wired with two Cat5 wire bundles because I had some handy and I like the easily identified wires all nicely bundled together.  However, instead of using 48 wires and 24 relays to control the 24 buttons, I use only 14 wires.  These wires are soldered to specific phone keypad conductors that I determined to make up the "rows" and "columns" of  the keypad matrix.  I connected these wires to a cross-point switch circuit on my board.  For the cross-point switch, I am using 6 Vishay ILQ2 quad opto-coupler ICs instead of relays.  When compared to relays, like the OMR-C-105H used for the power control, the opto-couplers are more compact and cost about half as much per switch.  To control the opto-couplers I am using three 74HC138A ICs which are 3-to-8 bit decoders with complementary outputs.  From the decoders there are 6 wires to the Arduino UNO board.

I have posted schematics for the board design.  Click the "Appendix" tab (above).

The real trick to the entire hack is reverse-engineering the phone's keypad.  I will publish a separate post on that topic later.

What's Next?

For the most part, I think the hardware to control the phone finished.  Now I have a bunch of software to write.  To start, I am going to work on composing text messages.  To do this, I'm going to figure out how to interactively control the phone thru my PC or some other means.  I am thinking of reverse-engineering an IR remote control for this.  I know.  It is more than a little ironic.  But, since the phone's keypad is now useless,  I can no longer use it to play around with the phone and figure out how to navigate through the menus and compose text messages.  This will be much faster if I can do it interactively.

Friday, June 17, 2011

Mobile Phone Keypad Button Controller

This is a hack that breaths new life into an old "button phone."

Button keypads for mobile phones are quickly becoming an anachronism and may soon go the way of the rotary dial on land-line telephones of yore. 'Tis a shame... and an opportunity.  Hacking a keypad is easy.  I cannot imagine hacking a touch screen to be as easy.   So, it is a shame that as button phones become rare, hacking mobile phones will become more difficult.  On the other hand, the relatively low demand for button phones has driven the cost down into my "why not break it & change it" range.  So, if you can't find where you stashed your old phone, you can pick one up used really cheap (<$10 + S&H).

Part of the fun of this project is reverse-engineering the phone keypad and wiring it up for "remote control".  For me, that is where it all started.  From there, I designed a cross-point matrix using optocouplers to control all of the keys without using a pair of wires for each key.  In my case, I have 14 wires connected to the phone to control 24 keys.  I could have used relays, but these quad optocouplers are much more compact than any 5V relays I've ever come across.  Using a few 3-to-8 bit decoders, I am able to control all 24 keys with only 6 pins of the microcontroller (uC).  Overall, the hardware will be phone independent and software will take care of phone-specific features.

On the software side, I'm trying to make it relatively easy to adapt to different phones by changes to a header file that maps phone keys to uC output pins.  This is just in case I damage the existing phone and need to wire-up a different one.  Beyond that this design will be pretty much "phone independent"

As of today, I have finished a hand-wired solder-board to control all of the phone's keys. Over the next few weeks, I will discuss this hack in more detail, starting with the reverse-engineering the keypad. 

Below is a very short video of a dialing test to whet your appetite.

In this video, I am using the board to "auto-dial" 4 keys.  The phone starts off powered-up, but with the screen off.  When I power-on the Arduino board with the USB cable, the screen is powered on, the previous number is cleared, and 4 keys are dialed (#789).  Then it stops doing anything else.  I know, it is not very exciting, but after several hours looking for a befuddling build error, it is finally working.  So, I am excited to share this little triumph.  I promise a more interesting test/demo video after I've spent some more time writing and debugging the software.

Wednesday, March 23, 2011

Arduino Adventures: Early Impressions

I've been experimenting with an Arduino UNO board for a couple of months now.  It is pretty easy to use for simple digital and analog I/O.  I can see how non-technical types like artists and designers might gravitate to it.  It's quite fun to just write a few lines of code and presto!  The LEDs are blinking!  However, making LEDs blink is interesting for the first 20 minutes or so.  

On the other hand, the art of push-button debouncing... that's another thing altogether.  Seriously, I spent a few hours trying to figure out a debouncing algorithm that worked to my liking.  I finally found some examples of software debouncers and adapted one of them. 

Now, if I ever want a good debouncer, I will probably just implement it in hardware.

I've barely started into my main project, and frankly, I think I am already "outgrowing" my Arduino.  I have found that parallel I/O is not a part of the standard library.  I don't really understand why.  I have found that there are ways to work around this, but really, how hard would it be to make it part of the standard library?  (I know I can make my own lib.  I will.)

Another thing that bothers me is the IDE.  Its simplicity is great.  But, it is missing certain features of good text editors that I miss.  So,  I think I'm going to have to figure out how to run the compiler & loader independent of the editor.  My project will involve several hundreds of lines of code.  So, this will be necessary before I get too far.

But before I start writing my app-specific software, I'd like to check out  Arduino interrupt programming.  I read that it supports internal timer event interrupts as well as external interrupts.  I'd like to see them in action.

MSP430 Launchpad Arrived

While sharing some of my Arduino complaints with a friend of mine, he suggested I check out this cool new TI MSP430 Launchpad board.  At under $5 (delivered!), I thought why not.  I even talked a couple of other friends into buying one each.  (Note: There's a max of 3 per order.)

If you check out the TI LaunchPad Wiki, I think you will agree it is worth picking up even if it sits on the shelf for a little while.

Oh and another thing... Hack-A-Day reported that someone is working on a header file that helps port Arduino sketches to TI Launchpad.  So, I may start using this TI MCU sooner than later.

Wednesday, March 16, 2011

Featured on Hack-A-Day!

After some encouragement from a friend, I submitted my "Analog-to-"Digital Storage" Oscilloscope" hack to the Hack-A-Day website today and it made the cut. Thanks Hack-A-Day!  (It is an honor.)  I hope to have more postings featured there in the future.

Monday, March 14, 2011

Happy Pi Day!

I know.  It is not a hack posting.  But I can't just let this day go by without saying something.  Pi has been an important part of my education and I think it is worth some some recognition for it's importance to the development of technology in modern society.

To celebrate, here is some music scored using Pi (video) and links to other Pi-related music and art work.

Happy Pi Day!

Saturday, March 5, 2011

Analog-to-"Digital Storage" Oscilloscope

Starting with a plastic jar, and some odd-and-ends, I was able to add "digital storage" capability to my analog oscilloscope. See sample waveform.

In case you had not guessed already, this is a pretty simple hack that enables me to consistently take good quality digital photos of my analog scope display.  By mounting a digital camera to the oscilloscope so that a low-light timed exposure can be taken, I do not have to use the camera flash and.

  • (1) analog oscilloscope (in my case Tektronics 2213A)
  • (1) large plastic jar with a bottom large enough to span the scope display's width and height to enclose each of the bezel's edges.
  • (1) digital camera (small, lightweight with timer)
  • Velcro(TM) or adhesive hook strips and/or glue (hot glue gun)
  • Sharp knife and/or Dremel tool
  • Glue gun (optional)
  • Tin snips / metal shears (optional)

Step 1: Go Nuts!

Empty a large plastic jar. Be sure to have a lid that is large enough to cut a hole for your camera lens and mount the digital camera to. You also need the bottom of the jar to span the outer part of the display bezel. For my case, the Kirkland Fancy Cashews jar worked great.

Testing Bottom of Plastic Jar for Size and Fit

Step 2: Mark & Rough Cut Bottom of Jar

Measure the scope display and mark an outline on the bottom of the plastic jar. You can trim back the parts that will form the sides more than the top and bottom parts (relative to scope display). I recommend using a "paper-rub" to get the scope display dimensions perfect and be sure to mark for "under cutting" giving plenty of room to cut more as you fine-tune the fit.

Paper rub of display outline.

Marked for rough cut.

Finished rough cut.

Step 3: Fit and Fine Cut Bottom of Jar

Since the jar is not perfectly square, start by cutting out the corner notches. This will make the fine cutting a little easier. To get the right fit takes some patience; Cut a little, measure and repeat until it fits "square" with the display. I recommend using tin snips or whatever else gives you a safe and controlled cut. At this point, you may also fold the top edge down to hook into the bezel groove. After the fold, more trimming may be required to set the other 3 edges (not-folded!) to be flush with the 90-degree-folded edge.

Corner notch cut. (with folded top edge.)

Corner notch cuts when connected to scope. (Note: Top fold fits into bezel groove.)

Step 4: Mark & Cut Jar Lid

Next, you need to determine the "12-o'clock" position of the lid and mark it.  You can see the 12-o'clock position marked in the hole saw picture (below).  This mark will be the 'up' position when the jar lid is attached to the jar while mounted on the scope.

Now, cut a hole in the lid that is at least the diameter of the camera lens. You may also consider cutting it large enough, or cut additional holes, to include the flash and any auto-focus assist light. I used a 1.5 inch hole saw on my drill press for a nice clean cut in the center of the lid.

Clean cut with hole saw and drill press.

Step 5: Attach Mounting Hardware

To keep things simple, I used adhesive "hooks" product from 3M to attach the camera to the lid. The position of the adhesive will depend on where the "up" marking is and the camera.  Below, are some pictures of the mounting hardware and assembly.

Rev 1.0: Finished

Well.  That was it.  But, I soon found several shortcomings:
  • The hooks adhesive did not support the torque of the camera weight very well.
  • I could not rotate the lid to adjust for the effect of the torque.
  • The adhesive did not stick very well to the plastic lid.
  • There is a lot of glare reflected from the display unless I turn off all lights behind the camera.
Here are some more pics taken with this setup where I found I liked the pics best when the camera was in Black & White mode.

Rev 1.1: Summary

So I made some minor changes to improve the performance of this camera mount:
  • Fashioned some "L" brackets from some scrap metal I had in my shop.
  • Created a cardboard platform to set the camera on.
  • Set the camera platform so that it was plumb at 1-o'clock instead of 12-o'clock.  This makes it possible to rotate the camera within 10 to 15 degrees of plumb vertical.
  • Painted the inside of the lid side of the jar matte black to reduce glare from outside light sources
  • These improvements are illustrated in the following pics.

Final Thoughts

Well, I basically got what I wanted; a way to take crisp clear pictures of my oscilloscope display.  I still need to figure out how to illuminate the grid from within the jar.  I may add some LEDs.  But, I may have to deal with glare again...

This project got me thinking about some other hack ideas:
  1. I've found that single-shot capture is may be necessary for some IR hacks. (Depends on the IR remote used.  So, it got me thinking about if/how I could trigger the digital camera "shutter" to synchronize off of the scope trigger.  Ideally, I could implement a "single-shot" capture like a real DSO.
  2. An even more ambitious idea: Hack the internal display control voltages and use an ADC to capture the waveform.
  3. Add support to make the scope a multi-channel (>2 chan) digital logic analyzer/display.  (Hack-a-Day recently had a post on this.  (See:
Well, those will have to wait.  I have other plans for my lil' o'scope before I start with more scope-related hacks.

Tuesday, March 1, 2011

My First O'scope!

A couple of weeks ago, I bought my first oscilloscope. It is a used Tek 2213A (2-chan, 60MHz, analog). (I got a great deal... less than $100 with 2 passive probes.) I've already used it to decode some IR flasher codes and based on that experience, I've already cooked up a hack to make it a "digital storage" scope. I'll post that hack later this week.

Overall, I am happy with the new 'scope. But, I have definitely gotten a little dumbed-down using digital scopes over the years. Seriously, I spent an hour thinking I had bought a dud, trying to figure out where my traces were. I went so far as to open the case to see if any components were visibly fried. Then, I read "step 1" of the service manual. It goes something like "...turn the display intensity knob to max position..." and just like that I was in business. What can I say? I am a little rusty.

Saturday, February 26, 2011


Welcome to make_it; break_it; fix_it; change_it; DIY blog. If you are interested in "do-it-yourself", hacking, making or just love to take things apart, you are likely to find something of interest.