Message to Eaton: Help would be appreciated!

Looking over my Google Analytics pages I’m seeing a few hits each week that appear to be coming from Eaton corporate networks. Welcome! FYI, I’ve been receiving quite a few messages from people who really like their HHB hardware. Most of these users were disappointed when Eaton stopped supporting the online HHB service, and are trying to find a workable replacement. I’d love to help out in this regard; the more I learn about this hardware and its capabilities the more impressed that I am with the solution that was developed. Kudos to the technical, engineering, and design staff – you should be proud of the accomplishment.

I’ve sent several messages to Eaton requesting technical information on the platform, but have thus far been ignored. It is quite possible that my pleas simply have not reached the correct people. If you are from Eaton and have any influence in this regard, please pass my contact information along. If you have a better email address available that you think would result in a response, please pass it along in the comments.

I will eventually reverse-engineer enough of this product to be able to build an open replacement for the previous web service. My interest in this area is not profit-driven, and I am not trying to monetize this in any way, shape, or form. Eaton has abandoned this product and has left its customers hanging. The hardware remaining in the marketplace remains perfectly usable, but without community support it will end up in the landfill. Again, if you are with Eaton, please try to encourage the powers that be to release technical information to the community. If you are not with Eaton, but would like to either participate in development or are a customer who was abandoned by Eaton and are looking for a replacement solution, please contact Eaton directly and try to encourage them to release the information.

Posted in ZigBee | Tagged | 1 Comment

Hacking Eaton HomeHeartbeat Part 6: Autopsy

Well, the good news is that I got an entire day to dissect the HHB base station, and now have a much more thorough understanding of the inner workings of the device. The bad news is that I managed to kill my base station in the process, probably by mercilessly probing for continuity trying to decipher internal device connections. C’est la vie – good thing these things are cheap. I hopped on Ebay and ordered a couple of new base stations in case I manage to kill another one, should be here next week. Read on for full details! Continue reading

Posted in ZigBee | Tagged | 3 Comments

New MSP430 Tutorials

Gustavo Litovski has posted an updated version of his MSP430 tutorial on his site

This is a nice concise introduction to the platform. Code examples use IAR, but should be fairly portable to other compilers.

Another complete set of tutorials that I have found useful is available at the Scientific Instruments using MSP430 site. These tutorials use the free TI Code Composer Studio IDE.

I typically find the commercial IDEs to be bloated and unnecessarily cluttered. I’m not a big fan of Microsoft dev tools, and it unfortunately appears that compiler vendors view MSVC as THE gold standard. The tools are bristling with tabs, toolbars, and HUD windows that add little value to the development process; it always reminds me of a weapons-laden comic book superhero. BEHOLD MY MANY OPTIONS!

Don’t get me wrong. I’ve done my time writing production C++ in MSVC, and the options that I’m complaining about do occasionally come in handy. At least some of them. Unfortunately, when learning a completely new platform, the clutter is little more than a distraction. I’ll probably be doing my initial MSP430 development in good old fashioned emacs with mspgcc. Once I get more comfortable with the platform I may look more closely at IDE options; Rowley Crossworks looks intriguing. Crossworks has a native Mac version and also supports most of the available microcontroller platforms. As an added bonus, they have an affordable personal license available.

Posted in MSP430 | Leave a comment

AnyDisplay Supported Displays

Here’s my initial list of displays which will be supported by AnyDisplay. Currently working on a breakout board for the Sharp MLCD devices which should make these easier to work with.

Display Type Price Size Resolution Colors Controller
Sharp LS013B4DN02 PNLC $20.43 28×32 96×96 Mono
Sharp LS027B7DH01 HR-TFT $45.25 62×42 400×240 Mono
Liquidware Touchshield Slide OLED     320×240 RGB666
EA DOGM128W-6 FSTN $18.00 55×46 128×64 Mono ST7565R
EA DOGXL160W-7 FSTN $35.98 78×61 160×104 Mono UC1610
Newhaven 
NHD-C160100DiZ-FSW-FB
FSTN $18.55 49×48 160×100 4 bit gray ST7528i
ScreenKey TFT128 TFT n/a 35×30 128×128 RGB565  
Nokia 6100 TFT $4.95 27×27 128×128 RGB565 PCF8833
Osram Pictiva OLED n/a 92×19 288×48 8 bit gray

Posted in Arduino, Display | Tagged | 6 Comments

AnyDisplay: Unified library for graphical displays

OK, I admit it.  I have a weakness for displays.  Most of the projects that I’ve got in the hopper include some sort of graphical display.  While the ubiquitous LCD character display may be inexpensive, I find them to be terribly limiting and, frankly, kind of boring.

Since delving into microcontroller development I’ve managed to get my hands on a pretty decent collection of graphical displays.  I’m currently rather obsessed with the new(ish) MemoryLCD displays from Sharp; look for a subsequent post detailing how to work with these.

One of my frustrations with the current state of graphical displays in the microcontroller realm is the lack of consistency and uniformity in terms of libraries.  Switching displays is a painful proposition; if you are lucky you may find an existing library for the display as a starting point.  The library may or may not be functional, will undoubtably be incomplete, and will most likely have a completely different API than what you are used to.    The GLCD project makes an attempt at supporting several displays, but I’m not fond of the API and adding support for new displays is rather difficult.  Some vendors such as Adafruit do take the time to build simple display libraries for the displays that they sell, but they tend to lack uniformity between displays.

I’ve spent a good deal of time researching and prototyping solutions and have designed a new unified library for graphical displays.  Called AnyDisplay, this library will provide a single, consistent API for integrating graphical displays with Microcontroller projects.  The library consists of a well-fleshed out, well tested API for graphics primitives which is consistent across all displays.  Adding support for new devices requires developing a small driver for device-specific implementations.

Ultimately, this will allow you to easily add cool graphical displays to your projects.  Focus on the product that you are trying to build rather than spending so much time dealing with low-level details.  The consistent API will make experimenting with new displays a much simpler proposition.

Posted in Arduino, Display | Tagged | Leave a comment

Freeduino Runtime Boards

image

Assembled a batch of Freeduino runtime boards (from nkcelectronics.com, a mere $1.99 each).  Waiting on some back-ordered DIP-28 sockets from Mouser and I can finish the set.

These are neat little boards, Arduino stripped down to bare essentials.

Posted in Arduino | Leave a comment

Windows 7 – OK, so it doesn’t suck.

July kept me insanely busy.  My daughter underwent extensive surgery at the end of June and had some complications.  She is fine now and recovering well, but the month of July is an insane blur.  In any case, I’m back in the game now and intend on posting lots of new content here.

I picked up a little Asus EEPC 1001PXB for 75 bucks on EBay and it arrived the other day.  Nice little netbook: 10.1″ screen, 6-cell LIPO battery, dual core Atom N450, 2 gigs RAM.  Previous owner sold it cheap because the hard drive had failed.  I replaced the bad drive with a 40 gig OWC Extreme SSD and installed Ubuntu 11 (Natty Narwhal); it’s surprisingly responsive.  Cold boot to usable system in a couple of seconds; sweet!

Those of you who know me are all too familiar with my disdain for Windows.  I’m a grizzled old MCSE from back in the day, and know Windows quite well inside and out.  At one time I was quite proficient with the Win32 API, and made quite a decent living developing custom Windows applications with C++ and Delphi.  I switched from Windows to Mac in 2006 after buying an Intel Mac Pro, and eliminated all things Windows from my home in 2007.  It has been a blissful migration, and I really haven’t missed the platform.

I recently dove wholeheartedly into digital electronics and Microcontrollers; the topics have been on my interest list for quite some time.  After working with the Arduino platform for a couple of months, I decided to dive into straight AVR development.  I really like the platform.  I recently ran into a couple of tools that I wanted to try which are Windows only – specifically the Atmel AVR development suite and the 4D Systems 4GL IDE.  Rather than delving into the ball of pain which is XP, I decided to give Windows 7 a go.

Short review?  It doesn’t suck.

Posted in Operating Systems, Uncategorized | Tagged | Leave a comment

Excellent Online Arduino Tutorial Series

Excellent Arduino tutorial series from John Boxall on Tronixstuff.  Lots of great information and great product ideas.

Posted in Arduino, Electronics | Leave a comment

Serial Backpack for Avago HDLx-2416 Using Teensy

I purchased an Avago HDLS-2416 display from eBay a while back for my refrigerator monitor project (Fridge Squid FTW!).  This is a really nice compact 4-character 5×7 alphanumeric display, extremely bright and readable.

Unfortunately it was the wrong part; the 2416 is a parallel display, requiring 16 pins for normal operation.  What I *should* have ordered was a HCMx-29xx display, which is a serial device that already has Arduino support (check out the library on the PJRC site).

Last week while researching batch PCB creation on the dorkboxpdx site I stumbled across an interesting post by Ward Cunningham (yes, THAT Ward Cunningham).  In this blog post Ward describes how the 2416 is a near-perfect fit for the Teensy USB development board, a tiny AVR-based board from PJRC.  While Ward’s post focuses on using Txtzyme via the USB port to drive the display, it got me thinking about how to turn this display into a simple serial device that wouldn’t use up all of the ports on my Arduino.

I already had a couple of Teensy boards in my collection from my initial Arduino purchasing frenzy; I picked them up before I discovered the Arduino FIO, which is a much better fit for my wireless sensor project.  Sure enough, the 2416 display fits the Teensy like a glove, almost like they were made for each other.  I initially thought that I’d mount the display using low-profile female headers; soldered the headers on the board, plugged in the display, and…nothing.  Turns out that the pins on the Avago display are far too fine to make reliable contact with the female header that I had installed.  Oops.

I’ve gotten pretty good at soldering over the last couple of months, but desoldering? Not so much.  Removing the female headers took some doing, but eventually I got them removed and soldered the display directly to the Teensy.  Plugged everything in, uploaded Txtzyme to my Teensy and ran Ward’s yow! Perl script.  Very close – alpha characters worked fine, but no numerics or punctuation.  A bit of debugging and I found the problem.  In my haste to remove the female headers I had accidentally pulled the solder pad from one of the Teensy’s pins; a quick jumper to another digital pin, quick change to the perl script, and everything was right with the world again.

I spent some time banging out a simple bit of code to run on the Teensy, and will post the library up on my GitHub account once I’m happy with it.

This could be a nice solution if you wanted to include a HDLx-2416 or similar but were running out of digital outputs on your microcontroller.  This solution provides display integration with a single serial pin, rather than the five required for the serial HCMx-29xx serial display.

Edit: 7/24/2011: Found a source on EBay selling a bunch of these for a very reasonable price ($12.50); check out the auction here.

Posted in Arduino, Electronics | Tagged | 2 Comments

Don’t Be Afraid of Surface Mount Components!

While taking stock of the components I had on hand last weekend I found a small box of sample components that I had ordered from Maxim a while back; Two each of several components: DS2717 RTC, DS2438 Smart Battery Monitor,  DS2762 Hi-precision Li+ Battery Monitor with Alerts, and an DS2408 8-channel addressable switch.  These parts all have a couple things in common – first, they are all 1-Wire devices, but more to the point they are all surface mount components.  The 2717 is a TSOC-6, the 2438 is a SOIC-8, the 2762 is a TSSOP-16, and the 2408 is a SOIC-16.  And they are *tiny*.  Seriously.  My renewed interest in electronics and the Arduino spurred me on to research whether hand soldering was even possible with these parts, and I was pleased to discover that not only is it possible, it’s really quite easy as long as you use decent tools and follow a few simple guidelines.

Continue reading

Posted in 1-Wire, Electronics | Tagged | 2 Comments