Tag: project

  • This Fan Blows! (but not very well…)

    This Fan Blows! (but not very well…)

    It all started in January, when the cold really settled in. I started to notice that when the furnace was on, the airflow from the vents was inconsistent. In the early morning when it would start up (coming up to the daytime setting from the lower overnight setting), it would blow for a few minutes, but then stop. Then start. Then stop. Etc.

    As with most things in my life that are not a dire emergency, I kind of ignored it for a while. But I eventually called in an “expert” — an HVAC contractor that was on the list of approved contractors from the Bosch web site. They were able to come by a few days later (it was not a “NO HEAT” situation, and there were people without heat). The very polite tech came in and made some changes to the thermostat’s settings, and went on his way. Basically, he changed things so it would use the aux heat (gas furnace) more often, and the heat pump less often. Well, I knew that wasn’t the end of it, because the problem was most evident (to me) when it was using the gas furnace! Sometimes, the furnace would lock out, requiring a circuit breaker reset to get it to try again.

    They came out again about a week later, this time more willing to listen. And the technician was able to experience the problem when it happened, and he said, “Yup — the blower needs to be replaced.” which was what my guess was, too. However, what I didn’t expect was for it not to be covered by warranty (it was installed < 5 years prior), and for the price to be $1827. Yikes! I tried to see if I could get a hold of the original installer, but he was a small contractor doing this kind of work part-time (his full time job was an HVAC technician for M.I.T.), and it seems that he quit doing that kind of work shortly after installing our system. I also tried to find a “warranty friendlier” contractor, but came up empty there as well.

    So I “phoned a friend” who has a lot of knowledge and expertise in this area, and he thought it unlikely that the blower was bad, and that it was more likely that one of the furnace safety switches had gone flaky. The Bosch furnace has a lovely single LED indicator that blinks out a numeric code if there’s a problem. I had only ever noticed it at 11, when it locked out. I told my friend, “If I were smart, I would hook up a webcam and some software to monitor the LED…” but it sounded like a hassle. However, it also seemed like the best way of getting some diagnostic data to get a better handle on what the problem was. If I failed to mention it, this unit is in an attic crawl space, so it’s a pain to get to.

    I then “consulted” with ChatGPT about the idea. It suggested that the camera module (ESP32) I had was underpowered for doing that kind of image analysis work, but that an ESP32 module with a light sensor would be cheaper and the code would be easier. So I set off down that path. “We” were originally going to have 2 light detectors, and put filters over them so we could tell if the LED were lit in green or red. But the filters ended up cutting so much signal that all that was left was noise, and the detector was unreliable. So we ended up with a single detector, essentially attached to the LED via a small tube. And this worked great!

    Meanwhile, I had also purchased and hooked up an airspeed sensor module, so we could monitor the airspeed through the main trunk duct (see the graph above). I was able to show that no matter whether the fan was on manually, or for the gas furnace, or the heat pump, it just ran very unreliably. It would run for a few minutes in a row when cold, but once it warmed up it became very erratic. Then the LED monitor would sometimes show we had gone to code 4, which indicated that the overtemp device kicked in, and had shut down the furnace. Often this would escalate to a code 11, where you would have to manually turn power off and on to get it to reset.

    So all the evidence was pointing to a bad blower, and in fact, to the Electronic Control Module (ECM), which probably had a bad capacitor or something similar. But you can’t just replace the ECM — the motor and ECM are essentially a single unit. So I looked around and found a place to order the blower motor from, and ordered it. It arrived this past Thursday (19 March 2026), and I waited until today (Saturday) when Tyler would be available to help with the install.

    It took just about 2 hours exactly to do the swap. After turning the power off, we had to disconnect a ton of wires,

    and document what needed to be connected where. After that, the entire blower unit with the control board can slide out. Once we had the unit out, we were able to bring it to the basement and do the swap.

    This involved loosening the squirrel cage from the motor shaft, then removing the suspension from the housing. Then getting the squirrel cage all the way off, then removing the suspension from the motor housing.

    That got us to the halfway point, so it was time to turn around and head back — starting with attaching the suspension to the new motor, then the motor to the unit, then the squirrel cage to the shaft. Then we brought everything back upstairs, and reinstalled it into the furnace housing. Finally, we turned the power back on, and monitored and tested everything.

    And we have been successful! Everything now works as expected, and the fan ran for 20+ minutes with the heat on, and turned off when it hit the set point. I then ran the fan manually for 90 minutes, and it ran consistently. So, all looks good! And instead of paying the pros $1827 for this service, we paid $752 for the blower and did the work ourselves, saving over $1000!

    Screenshot
  • The Bug Hunt

    A few years ago, someone’s project came up on my Twitter Feed (or elsewhere — it’s been a while, and I don’t remember with certainty) that caught my interest. This happens with an alarming frequency, but most of the time I can stifle the interest sufficiently to avoid ordering all the parts. Our house is littered with projects that I have bought the parts for, but never completed. Projects that are born of my own fevered brain, especially those whose inspiration is a really nifty part or gizmo I’ve come across, are especially susceptible to this fate. And the Classroom Clock started out like many — I purchased the necessary parts, and then they sat there for a couple of years.

    But unlike so many others, this one did eventually come together. Probably at least in part because it was given as a Christmas gift to my wife, Susan, a middle school science teacher. It took some work to get it all together, but then the problem was that the kind of schedule it was originally programmed for didn’t really mesh well with the schedule at Susan’s school. Once I began to get familiar with the code, I realized I didn’t like it very well, so I rewrote most of it from scratch, in a somewhat more generalized way. This past year, I made some more minor updates to it, basically to make it easier to update the schedule and calendar from year to year. The official school clock seems to drift more than the Chronodot that’s at the heart of the Classroom Clock, so periodically I have to re-program the time. The original project didn’t have any means for user input, so there is no way to manually change the time on the clock. In fact, the only way to change the time is to reprogram the clock, and the only way to “synchronize” the time is to calculate exactly how long it takes to upload the code to the clock, and hard-code an appropriate time in the program. Argh!

    My contribution in this area was to write a completely separate program that can be uploaded to the clock, with which you can interactively set the time. Then, you reload the normal clock firmware which no longer attempts to set the clock at all, and everything is good.

    So one time in the fall, Susan’s students apparently wanted the clock to display in 24 hour time. This is of course an easy change. The Chronodot tracks time in 24 hour mode, so it was just a matter of not subtracting 12 from the hours.

    Recently, the delta between the official school clock and the Classroom Clock got to be large enough to be annoying, so Susan asked me to come adjust it. We ended up bringing the clock home, and it was approaching 9 p.m. when I got around to looking at it. I wasn’t paying attention to the actual time, but when I powered up the clock, it said something like 10:43! It had always been completely reliable, so I was mystified as to why it would display a completely random time like that. After a few minutes, I realized that the minutes were correct, but why were the hours off by 2? That was a bizarre mystery.

    A little while later, it finally dawned on me what the problem was. The clock might have read 10:43, but that’s only because it was in fact not designed for 24 hour time. The digit for tens of hours was not a full seven segment digit, but rather just the two rightmost vertical segments — an engineering shortcut if ever there was one! The code in the clock, when deciding what to display there, would turn both segments OFF if the hours were less than 10, and both segments ON otherwise. So, it was doing its darnedest to display 20:43, but couldn’t. And of course I was not thinking about the fact that it ought to be in 24 hour mode — I just saw 10:43 and eventually decided it was off by 2 hours somehow.

    I asked Susan if she’d ever noticed it being wrong like that before, and she recalled that perhaps she had. When pressed, she remember that it was during parent-teacher conferences, in the evening. One of the only other times anyone would have been looking at the clock after 19:59.

    It’s easy to see how a bug like this could cause lots of head scratching, because it would be easy to report the problem as “sometimes the clock is off by 2 hours” and leave it at that. And you’d be left poring over the code, trying to figure out how a simple math error could occur occasionally and seemingly randomly.

    In the end, we decided to set the clock back to 12 hour mode.

    I’ve long had a Version 2 of the clock in my brain. I’ve constructed it so that the “brains” of the clock can be transplanted while leaving the display parts intact. The brains for V2 will run on a chip that provides WiFi connectivity and runs microPython. It will therefore be able to:

    • query a timeserver on the internet for the actual time
    • periodically download a configuration file, which can have the calendar, schedule, and an offset to apply to the real time, so the clock can match the official school clocks

    The hope is to write the code in a flexible enough manner that the config file can provide lots of different ways of arranging schedules and using the “extra” digit to denote the period, or day, or whatever.

    And now I realize there ought to be a V2 of the display hardware as well, which would have a full digit for tens-of-hours to allow for 24 hour time, and also some form of explict PM indicator for 12 hour mode.

    Some day…

  • Useful

    On Thursday (2 days ago) I ordered an electronics prototyping kit based around an Atmel ATmega8U2 microcontroller. The kit is called an Arduino, and I ordered it from Adafruit Industries (funny name, I know), and paid for UPS ground shipping. I’m glad I didn’t pay for 2-day or 3-day “Priority” shipping, because it arrived Friday, the very next day.

    The hardware is “open source” and there are many freely available open source tools for programming it. Tyler and I played around a little with it last night, and made it blink an LED. I played a little more after he went to bed and made it light up a series of LEDs in various patterns. Cute. The programming environment is C-based, so it is pretty familiar to an old programmer like me. Today (Saturday), I spend a couple of hours (chopped up into 5, 15 or 30 minute increments) and was able to make something, well, useful. It also uses a separate LCD display that I also purchased (seemed like it could be a fun add-on), and a temperature sensor that came with the kit. Using the display meant also using my nice new soldering station to solder 21 connections! Here it is:


    It is a thermometer that displays the temperature when you press a button. It displays for 5 seconds, then the display turns off to conserve the battery.

    I was partly inspired by a friend who also bought a kit and has been enjoying it. I had heard of Arduino starting a few years ago from the Make: blog and magazine. It is very popular among hobbyists and artists of a certain bent. It has lots of useful means of interacting with the real world, and a bevy of enthusiasts who have contributed lots of code and made add-on hardware for the platform. We have plans for a much more involved project, but for now, these little steps are still exciting.