Honeywell FocusPro 5000 (2h2c) uses ATmega329v

Honeywell FocusPro 5000 (2h2c) uses ATmega329v. There seem to be two versions of this guy. One is large, the other small. The larger model is a two heat – two cool which is generally used in heat pump applications. I’ll cover the smaller version some other time. This is personal project. I’m reprogramming the thermostat so that it can work with a networking technology a friend and i have worked on for some time. I’m not going to cover the concept or what it is that i can do or can’t do. Next i will share some of my thoughts on the thermostat.

First, it’s a sweet development platform! It has a pile of relays, the hardware supports a RTC via a timer(but the firmware does not make use of it). It’s dual powered, two AA’s or 24vac(it will actually work from 12vac – 35vac). So that’s an impressive input range and options. Oh yeah, it has 4 buttons. But they are hard-wired kinda goofy. And last a nice nifty LCD segment screen to reverse 🙂

I have plenty of documents about this thing. But I’m only sharing the basics unless someone asks for more. For starters lets check out the ISP. They have pads under the battery compartment for automated programming and calibrating the onboard thermistor.

Hows that for easy ISP? I removed the surface mounted relays since i do not need them. Also, i have no clue what IO are used for the relays- you are on your own there. But if you want to figure it out and share i’ll gladly put your notes up here. So now that we have ISP we can check the chip out. They are locked from factory(as are most)  So a nuke is required.  Next thing is to fiddle around with the LCD driver and find the segments. I brute force most things since i have no data. It’s more enjoyable that way don’t ya think?

After a few hours i found the Led backlight and got the duty, voltage, contrast, refresh all figured out. Looks like factory implementation other than the fact that all the segments are on. I get a little tingle up my spine when i see an ISP wire rolling out of  consumer product.

Last we have the keys. Kinda strange how they wired it. I can’t seem to find a solution in which all keys can be decoded properly on multiple key presses. For the time I’m saying that the best we can do is decode three  keys at once.  With the right kind of thinking it may be possible to get all four at the same time. But i’m lacking that kind of thinking at this point in time. Suggestions are welcome.

This is an overview of the ISP wire and the SLOP module modification. SLOP is a project that a friend and i have been working on for many years. All i’ll say is that this thermostat is now part of a distributed system prototype.


6 Responses to “Honeywell FocusPro 5000 (2h2c) uses ATmega329v”

  1. mitch Says:

    Great info I have a FocusPro 6000 I want to use for an automation project. Any other info on the board would be great. I will share as I dig in more.

  2. Thatguy Says:

    hey i need more info on this Im staring a 329v honeywell in the face! I have a usb asp fitchel design and a mac please help!

  3. ThatGuy Says:

    Im a newbie and am just starting I would like to know just how to write code for the lcd segments

  4. iteration69 Says:

    You have to set up the lcd controller on the chip.

    /* lcd enable, no interupts, no lower power, no blanking */
    LCDCRA = 0x80;
    /* system clock,half biased, quarter duty,SEG0:34 enabled */
    LCDCRB = 0b01111100;
    /* prescaler = 520khz, 256hz */
    LCDFRR = 0b01110011;
    /* drive time = 570uS, contrast = 2.60 volt */
    LCDCCR = 0b11000000;

    Next you need support macros for each segment. From there support macros you can build group macros and functions.

    Here is an example of a support macro for the “FAN” segment on the LCD Screen.

    #define seg_fan 6
    /* “Fan” */
    #define seg_fan_on LCDDR15 |= _BV(seg_fan)
    #define seg_fan_off LCDDR15 &= ~_BV(seg_fan)
    #define seg_fan_inv LCDDR15 ^= _BV(seg_fan)

    After setting up the LCD controller the you should be able to use the above support macros to manipulate the FAN segment. I’ve not looked over the code base any closer so if this does not work i must have missed something.

    I’m in the process of converting all my code to GPL, including this project.

  5. ThatGuy Says:

    cool thanks

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: