Tag Archives: hack

Home Sweet Garage

Alright, I think it’s about time for this silly article on plasma arc waste disposal to get knocked off the top of my site, don’t you?  It’s just fluff, honestly.  Filler.  And I’m tired of looking at it.  So how about a post on a real project for a change?  Sound good?  Great.

First though, a quick gripe.  I hate waiting for parts to arrive.  Specifically “last” parts.  Like that final DigiKey order, or in my case, a shipment of PCBs from Advanced Circuits.  You see, I now have everything I need to complete this really exciting new device I’m designing at work, except for the PCBs.

Assorted parts, but no PCBs...

And not having boards is kindof a show-stopper.  So I’m crossing my fingers and hoping that Advanced Circuits gets them shipped out early, as they so often do (because they’re totally awesome).

But let’s get down to business.  If you happen to have been reading my blog about six months ago, you may remember that I recently moved to the middle of nowhere Waterloo, Iowa to start working for John Deere.  Now prior to moving here, finding a place to live has been, for me, frustrating.  “Oh, here’s a place that’s nice, but it’s too far away,” or, “That’s way too expensive,” or, “Uh, what’s that growing on the ceiling?”

Not so this time.  Deere actually provided a relocation assistant to show me several nice places around town.  All I had to do was tell her what I was looking for and BAM, there we were.  Plus, the cost of living in Iowa is virtually zero.  So here I am, renting a lovely townhouse, about ten minutes’ drive from work.

Now, nothing’s ever perfect, and this place is no exception.  For instance, it’s got a nice single-car garage with an opener, but there are two problems.  First, the remote control has terrible range.  My landlord warned me about this, but explained that I just needed to find that “sweet spot” for it in my car.  But this thing is kindof a brick and looks rather like some RadioShack project box.

This really is a garage door opener.

The second problem is lighting.  The garage door opener does have a single light bulb which comes on when the unit operates, but it’s pretty anemic.  This isn’t helped by the fact that the inside of the garage is almost all dark wood, either.  Plus it seems to take a few seconds for this light come on, and it only stays on for a few seconds afterwards.

So in Iowa, winters are long, dark, and cold.  Not unlike a mine shaft, I imagine.  But I like light.  So I took a trip to Home Depot one weekend, and for about $50 (those motion-detecting switches are kindof steep) solved problem number two quite simply.

Let there be light!

Yep, that’s a Lutron motion-sensing light switch, wired into an extension cord, and a simple reflective lamp fixture.  And it’s all just clamped to the top of a set of shelves I already own.  Easy peasy.  And it works like a charm.  The switch has two little pots to control sensitivity and on-time.  Which is great, because I love adjusting things.  So now I can pull into the garage, catch those last few minutes of Wait Wait, Don’t Tell Me, and then hop out and voilà, let there be light.  And I saw that it was good (enough).

Now for a while, I lived with problem number one without much complaint.  I had to be in my driveway before the remote would trigger the opener, but it wasn’t a huge deal.  Then for some reason, it routinely started failing me.  My car actually had to be within a few feet of the door for it to open.  And more than once I had to get out of my car (heaven forbid) and wave the remote around in front of it.  I replaced the battery, but this made no apparent difference.

So again, one weekend I decided I’d had enough and sat down at my workbench to sort out the problem.  I popped the project box remote open and started probing.

A very simple garage door opener

To make a long story short, I discovered that the transmitter was simply broadcasting a repeating pulse train via (I believe) amplitude modulation.  Somewhere in the 800kHz range, although I don’t have equipment capable of measuring such high frequencies with any sort of precision.  I can tell you that the DIP switches you see control the sequence of the transmitted pulses to match a particular receiver.

Get on board the pulse train!  Woo woo!

Since I know virtually nothing about RF amplification, and didn’t want to risk damaging the remote, I decided to piece together my own remote from components I had lying around.  Here’s what I used:


  • SparkFun 315Mhz ASK transmitter module ($4)
  • AVR ATTiny13 8-bit, DIP8 microcontroller ($2)
  • 5V Regulator
  • 9V Battery
  • Protoboard
  • Button


  • SparkFun 315Mhz ASK receiver module ($5, discontinued)
  • Olimex AVR-MT-128 development board ($75)
  • 12V wall-wart power supply

Now the precise components specified here aren’t really too important.  I used what I had.  I would recommend the RF transmitter and receiver though (except that the receiver has been discontinued).  These are both pretty amazing for the price; I got them a number of years ago and haven’t yet put them to much use.  But they’re fantastically simple.  Just apply TTL-level serial data to the input of the transmitter, and watch it appear at the output of the receiver.  That’s it.  No configuration/setup required.  The only complication is that there is no error checking.  So you’ll need to be clever about dealing with the occasional garbage data.

So how does this all work together then?  Well, when you press the button on the prototype remote, the 9V battery is then connected to the transmitter module and the MCU (via the 5V regulator).  The MCU then sends out a slew of bit-banged (since the ATTiny13 has no hardware UART) serial data to the transmitter, which then sends it wirelessly to the receiver.

Now this is a garage door opener!  Well, sortof...

The receiver then sends this data to the ATMega128 (on the AVR-MT-128 dev board), which does have a hardware UART.  If the received data is correct, a relay on the dev board is quickly closed and then opened again.  The relay terminals are wired up in parallel with the door open/close button inside the garage.  Thus, the action of the relay simulates a real button press and causes the garage door to open/close.

The receiver

That’s it.  Again, pretty simple, right?  The receiver, since it’s got an LCD display, also indicates how many times the door has been actuated (either opened or closed).  This was a comforting feature during initial testing, because it allowed me to determine whether or not my garage had been opened at any unexpected time.

Sophisticated, yes?Well I’ve been driving around with this silly protoboard taped to my center console for about two months now.  It’s been working great; I can now operate my garage door reliably from the street (a distance of probably 50′), and this little gadget has made for such a nifty conversation piece that I might just leave it in protoboard form.  I mean, a small enclosure would be nice and stuff, but…

Seriously though, if you have any cheap and cheerful ideas for housing the transmitter in a more elegant and robust manner, do let me know in the comments.  By the way, at this point in a post I’d usually provide links to my code, but I’m not going to do that this time.  I’d rather not make it too easy for the tech-savvy thief to break into my garage, you know?  Yea, I’m probably just being paranoid, but still.  Lots of crime in Iowa you know. 🙂

Now ultimately I’d like to extend the functionality of my device so that it automatically opens and closes the door when I come and go.  If you’re curious about how that might be done, take a look at one of my older posts on the subject.  Thanks for reading though, and feel free to pose any questions below!

Supercaps For The Win!

A couple of years ago my parents bought themselves a LifeFitness R3 electronic exercise bike. It’s a pretty slick little machine, albeit expensive. The R3 has a plethora of workout and intensity options, a built-in heart-rate monitor, and displays that show distance traveled, calories burned, etc. What’s really cool is that all of the electronics are pedal-powered; who really wants to suck energy from the grid just to get a workout?

LifeFitness R3 Exercise BikeBut I’m not writing this post just to tell you about a neat exercise bike. I’m writing because I’ve figured out a way to make it even neater. Err, more neat. Whatever. Anyway, there’s one thing about the LifeFitness R3 that we’ve found slightly annoying: because it’s pedal-powered, whenever you stop riding, the display shuts off and the electronics reset. So if you’re in the middle of a 30-minute ride and get distracted by, let’s say, a Justin Bieber commercial, you’ll lose all of your stats and will have to re-start.

So since I hold degrees in electrical engineering, my parents asked me to make use of my education and remedy this inconvenience. My first step was to [carefully] crack open the display panel so that I could assess my options (scroll down for the full label legend):

LifeFitness R3 Circuit Board
It turns out this bike is controlled by our old friend the AVR ATMega128 (Label #1). This is the same chip found in the development board I used for my chronograph. It’s also very closely related to the AVR microcontroller used in the Arduino Mega. I tell you, it warms my heart to see this chip out in real products. Ah, but I digress…

Well having located the brains of the operation, I started looking for their power source. I quickly spotted two TO-220 package 5V linear regulators (labeled “R” in the image above). However, my multimeter (the only tool I had available at the time) indicated that neither of these were connected to the AVR. Eventually I located a tiny 8-SOIC regulator (Label #2) just beneath a pair of 2200uF power supply filter capacitors. A check of its pins indicated that this was in fact the device powering the AVR. And this regulator was fed by a set of wires that led down into the generator electronics. Interestingly, the generator appeared to be brushless, but I couldn’t get a good look at it or its electronics because of large panels I did not wish to damage (well, I thought about it).

I was also very excited to find a 2×5 ISP header on the main circuit board (Label #8). This meant that I might be able to reprogram the AVR to do my bidding. (Update: I’ve confirmed that this is possible; scroll down for details.) Perhaps I could have it enter power-save mode whenever the pedals stopped. Of course, this wouldn’t eliminate the power consumption of other devices on the board (display drivers, regulators, op-amps, etc). Plus, trying to reverse-engineer and modify machine code is no picnic (at least not to my knowledge). I decided to avoid this rabbit-hole and keep things simple.

NessCap 5V, 2.5F SupercapacitorsMy best option seemed to be the addition of supercapacitors. I could just tie them in parallel with the supply line filter caps. That way, the AVR’s regulator would continue to get stored power even after the user stopped biking. Adding capacitance to the regulator’s output was another option. However, the high initial charging current required by a large capacitor could be damaging to a device only rated to supply 100mA.

So I had two questions: how much capacitance do I need, and how much voltage will it have to handle? The second question was answered simply – I hooked my voltmeter up to the supply lines while pedaling and measured about 10.5VDC. To determine the amount of capacitance required, I used the following formula:

Ic = C*(dV/dT)

The ATMega128’s datasheet says it draws a current (Ic) of 19mA at 8Mhz and 5V, so let’s roughly double that figure just to be safe (to account for losses in the regulator and consumption by additional components). If the regulator can safely operate down to 5.5V, then our dV value will be 10.5 – 5.5 = 5V. Finally, let’s say we want to operate for 90 seconds. This means we need a capacitance of at least 0.72F. When I looked at Digi-Key (at the time), my best option was to purchase three 5V, 2.5F capacitors. Put in series, they’d be able to handle up to 15V, but their total capacitance would be reduced to 0.83F – still more than was necessary. Here’s a closeup image which shows the three supercaps linked together and soldered across one of the power supply filter capacitors:

Closeup of the supercapacitor fun-pack
So how did it all work? Splendidly. It turns out the AVR circuitry only drew about 30mA, giving approximately 120 seconds before full discharge. So now, whenever you hop off the bike to get water, adjust the stereo, or pet the dog, the bike’s display turns off (since it’s powered by a separate regulator), but the AVR continues to run, and will hold your current program and position for up to two minutes. A nifty feature added for about $20.

LifeFitness R3 Circuit Board
While I’m on the subject, I also found it interesting that the LifeFitness R3’s circuit board includes connections for a serial port (Label #9) as well as pins for a safety switch (Label #10). I suppose these were intended for other features not included with this model, but were left in place to reduce PCB manufacturing costs. For instance, the safety switch must have been meant for use with treadmills (I can’t see the need for this on a stationary bike). Perhaps the serial port is for a computer link of some sort? I’m tempted to test it out…

So finally, here’s the complete legend for the circuit board pictured above:

  1. ATMega128 microcontroller
  2. Linear regulator (8-SOIC) supplying the microcontroller
  3. Supercapacitor fun pack (3x 2.5F, 5V caps)
  4. Pushbutton circuit board
  5. Display driver IC (Holtek HT1647, 4-level grayscale, 64×16 LCD controller)
  6. Main I/O connector (includes power connections)
  7. Beeper (or, if you prefer, the annunciator)
  8. ISP header (for AVR programming)
  9. Serial port connections
  10. Safe switch connections

And because the quality of one’s post is directly related to the number of images contained therein, here’s a picture of my yellow lab. He’s not too sure about cameras just yet…

Marti (the Dog)

Update (10/8/2010): So I pulled out my old serial AVRISP with its 2×5 connector this afternoon, just to see if I could talk with the bike’s ATMega128. As it turns out, none of the chip’s lock bits were set, so I was able to download the HEX file with no problem (except for the strain on my arms while I kept the pedals turning). This means it is entirely possible for me to make modifications to the R3’s firmware. Of course, I’d have to figure out how to convert HEX back into ASM (which seems to be a questionable practice). If anyone else out there is interested in looking into this, feel free to leave a comment.

Idea: Car-Sensing Automatic Garage Door Closer

Powered Garage Door OpenerIf you’ve got a garage with an automatic door opener, I’ll bet that at one time or another, you’ve left it open by accident. No? Well, whenever I come home and find my garage wide open to the world, my heart races. Thankfully, the few times someone in my family has done this, nothing has been stolen. But according to the makers of the “Protectrix” automatic garage door closer, more than 40% of all burglars enter through an open garage. Their system, which is similar to the “Garage Butler” and several others on the market, automatically closes your garage door after an adjustable amount of time. But what if you want to do some work in the garage, or outside, and you’d like to leave the door open while you’re home? In that case, you’ll need to remember to hit a special button on most of these automatic systems which tells the door to stay open despite the elapsed time.

Here’s a thought though: why not have the closer sense the presence of your vehicle and then only close the door when it leaves? Then you won’t have to worry about overriding the automatic closing feature (and forgetting to re-enable it later). In my case, I rarely leave home without my car, so this would work perfectly. But how might this sensing be accomplished? My first thought was to use a couple of these wireless XBee modules:XBee Pro ModuleThese are great little devices, and I’ve used them in a number of projects over the years. They may be a little expensive for some applications though; the basic models cost about $20 while the mile-range “Pro” versions go for around $35. But this isn’t bad for an FCC approved 115kbps wireless link. Plus all models also come with a bunch of I/O (digital and analog) and a number of sophisticated features including encryption and mesh networking.

So my idea is to use a pair of these devices as proximity sensors. One of them would hang out with the garage door opener and the other would plug into your car’s cigarette lighter. Both would need additional power regulation circuitry to provide the necessary 3.3V supply. The one connected to the opener would likely be controlled by a cheap microcontroller (MCU) of some kind. The MCU could monitor the status of the garage door and send “pings” to the car-mounted XBee. If the car leaves and the door remains open, the MCU would then send a signal to the opener to close the garage door. And if for some reason you still wanted to door to remain open, well you’d still need that override button. But still, I think this approach greatly simplifies things.

Oh, and if you’re worried about the car-mounted device draining the car’s battery, don’t. While the “Pro” device (whose extended range is probably unnecessary in this case) draws 1W during transmission, we only need to transmit for a split second every 10 seconds or so for our sensing ping. So let’s say the transmission takes half a second, and we ping every 10 seconds – that’s an energy draw of 1.2Wh/day. Let’s say your 12V car battery is rated for 40Ah. Power equals voltage times current, so your battery stores 12*40 = 480Wh. Thus, the XBee could run on battery power for up to 400 days. No problem.

I may try this out in the next week or two. We’ll see what kind of modifications are necessary to the garage opener… Any suggestions, feel free to comment! Thanks.

Reviving a Failed Inverter

AIMS 180W InverterIn my last post I discussed the building of a solar-powered “reverse UPS” called the Doom Box (a name given for, really, no good reason). To briefly recap, its purpose was to capture, store, and convert solar energy into AC power. This AC output was provided by either a direct connection to the mains or, when solar power was available, an AIMS 180W pure sine wave inverter (specifically model number PWRI18012S, shown in the image at right).

Well after about six months of daily operation (with an average power output of 35W), my inverter bit the dust. To be precise, its 12VDC input suddenly turned into a dead short. Now, if you short out a big lead-acid battery, bad things can happen (burning insulation, melted wires, explosions). This is why I always (mostly) put fuses in series with my batteries. So because of these fuses, when this inverter failed, it wasn’t all that exciting. All I heard was a small pop from the fuse and that was it. Thinking that this was just a temporary problem, I replaced the fuse, removed the AC load, re-enabled the inverter, and pop – another fuse blown.

As a first test, I got my multimeter into the system and checked that the inverter’s input was in fact internally shorted. The next step was to remove it from the system. If you’ve seen the pictures from my last post, you’ll know this was no easy task. However, after disentangling it from the rest of the components, I popped it open and had a look:

AIMS 180W InverterAIMS 180W InverterYes, that assembly really is as sloppy as it looks. It appears that components were just shoved in at random. Seriously, it’s amazing that this thing ever worked. The two TO-220 package ICs (which are linear regulators) in the middle of the device are actually insulated from the toroidal inductor by a thin piece of paper. So much for build quality.

Well enough ranting – the question was, can this be fixed? I’d already likely voided my warranty by cutting off the cigarette-lighter plug, so returning the unit would be difficult. I started to poke around looking for anything that had obviously failed (e.g. burst capacitors – these are fairly common culprits). It turns out both of the input MOSFETs had shorted out. I’m not sure what caused this, but I suspect they were fairly low-quality components to begin with, and repeated thermal cycling led to failure.

AIMS 180W Inverter - Replaced MOSFETsSo to make a long story short, I replaced the failed MOSFETs (indicated by the red arrow in the image above) with similar, but higher-rated devices from Fairchild Semiconductor (FDP8860). By higher-rated I mean that these new transistors were rated for greater currents (80A) and had lower on-resistance (less than 3 mΩ). As a result the new MOSFETs should actually be more efficient and thus run cooler. So my messy little AIMS inverter is now up and running once more.

The Long Story: How to Identify Failed MOSFETS

You might be wondering, just how did I know which transistors had failed? Well many times, when a transistor fails and shorts out, it rapidly becomes very hot – so hot that its case can actually melt, crack, burst, glow red, or all of the above, as seen here:

Failed IC

(Note that the IC in the 14-DIP package shown above is not a MOSFET, but a dual MOSFET gate driver – I may discuss its failure in a future post.) Now, sometimes the damage to a failed device is much less obvious. I’ve seen a number of failed MOSFETs that appear to have one or two small droplets of water on their surface after failure. It’s not actually water, but some melted component of the package.

However, if you’re taking appropriate precautions and fusing your power source, it’s likely that your failed device will shown no physical signs of failure whatsoever. This is because after the device shorts, the fuse immediately blows and prevents catastrophic heating. This was the case with my inverter: the MOSFETs I replaced did not appear damaged in any way. So how did I find them, out of the multitude of devices crammed into that tiny case? Simple, actually – I measured the drain-source resistance on each device:

MOSFET SymbolBefore I continue, a little background is in order. A MOSFET (Metal Oxide Semiconductor Field Effect Transistor) works because voltage applied between the gate and source (Vgs) creates a small electric field inside the device. This electric field causes charge carriers to be pulled into the region between the drain and source. As a result, the resistance between drain and source drops as Vgs increases. So, if there is no voltage applied between the gate and source, and if the gate has been discharged (this happens over time, but can be accelerated by a short to the source), the resistance between drain and source should be infinite (or at least in the megaohm range).

So one way to verify that a MOSFET is working properly is to touch the positive probe of your multimeter to the drain pin (typically the middle pin on a TO-220 package) and the negative lead to the source pin (typically the rightmost pin). The meter should register at least several tens of kΩ, if not MΩ. If you’re getting a low resistance, try shorting the gate and source pins to remove and residual gate charge. If the resistance is still low (typically less than 100 ohms), the MOSFET is likely dead shorted. Of course, if the MOSFET is still in a circuit, your meter may be measuring the resistance of some other component. One thing you might try with the TO-220 package (pictured above) is to clip only the source lead before you test the device. Then you should be able to safely test the device. If it seems to be working, just dab a bit of solder over the cut lead.

One last thing you may wish to verify is the internal body diode (seen in the schematic symbol above) between the source and drain. Many multimeters have settings to measure the voltage drop across diodes. However, if your meter does not have this function, a simple resistance check will do. Our earlier test of resistance between the drain and source should have indicated very high resistance. However, if you reverse the polarity of your meter’s leads (positive → source and negative → drain), you should now read a very low resistance due to the body diode (if all is well).

Well, that’s my preferred technique for testing MOSFETs – if you have further suggestions or tips please feel free to comment! Thanks!


The Doom Box: Part I

I’ve long had a fascination for renewable energy – be it from wind, solar, or hydro-electric sources. Perhaps it’s just my penchant for penny-pinching, but the idea of free and (virtually) unlimited energy is something I find quite appealing. So, in February of 2009 (wow, has it been that long?) I bought my first SUN 90W, 18VDC photovoltaic (PV) panel:

Solar Panel (with voltmeter)

(As a side note, if that looks like a stock image, that’s because it is. However, it really is a picture of my very own panel and voltmeter. Stock photography is another hobby of mine which I may post on later.)

So, what did I have in mind for this 90W powerhouse? A reverse-UPS of course! What is a UPS, you ask? Well first off, UPS stands for uninterruptible power supply. You typically find these connected to computers, particularly server computers. Their purpose is to continue supplying power in the event of an outage. Essentially they’re fancy battery backup systems that can be switched on almost instantly in the event of a main power failure. Actually, some UPS systems run their inverters continuously and only rely on the mains input to keep their internal batteries charged.

Now most uninterruptible power supplies power their loads via a connection to the mains (120VAC) until an outage occurs. At this point the load is switched over to battery power. My plan for a reverse-UPS was just the opposite. I intended to power loads via solar and battery power until the battery reached a certain level of discharge (~70% of full charge so as to extend the life of my battery), then automatically switch over to mains power.

To accomplish this, I first bought a 63Ah deep-cycle lead acid battery and a SunSaver 15A MPPT charge controller from the Alternative Energy Store. While the MPPT feature on the charge controller did cost me a bit more, I think it’s a big plus, particularly for cloudy winter weather. So far I’ve been very impressed with the SunSaver’s performance:

SunSaver 15A MPPTThe next step was to obtain an AC inverter. I considered making one myself (as well as the charge controller), but opted to go COTS for convenience and safety. I may have it backwards, but I generally feel more comfortable using professionally-made devices when it comes to dealing with high voltage and current. (But of course I also fused just about every wire in the system – a very good choice, as you’ll see later.) I also wanted a pure sine-wave inverter for efficiency and smooth SSR switching (discussed later).

So with my battery-backed solar-powered AC source, all I needed was a means of switching between that and line AC. Paralell solid-state relays (SSRs) seemed to be the best solution because of their speed and easy of use. All I needed was an accurate and reliable way of controlling them. For that, I chose a simple 8-bit AVR microcontroller, the ATMega48. This is a great little MCU that can handle plenty of digital I/O and up to eight analog inputs. One of those inputs was wired up to monitor the battery. Several digital inputs went to switches and buttons, and two digital outputs went to the SSRs.

Switching from line AC to inverter AC was actually quite simple. Once you remove the digital “ON” signal from the SSR, it takes at most half an AC cycle to turn off (this is because its current must reach zero before turn-off occurs; see TRIAC). So, for a 60Hz AC source (standard here in the US), that means 8.3ms. To be safe, I went ahead and doubled that figure. So, to switch between relays, the MCU only needs to turn one off, wait about 16ms, then turn another on. Of course, the consequences of getting that timing wrong could be painful, so I was sure to thoroughly stress-test my code and electronics before running a powered test. So far, no fuses have been blown by crossed sources.

Here are a few images of the original completed system (before any revisions):

Doom Box (1)

Doom Box (2)

Yes, it’s made of wood. Pine, if I recall correctly. And yes, wood is flammable. I don’t plan on taking advantage of that fact. The cooling fan is there to keep everything well below flash point. It’s also intended to vent any hydrogen gas that may be given off by the lead-acid battery. Wood does have one plus though: it’s non-conductive.

Below is a close-up of the front panel, where all the user interaction happens. The large switch on the top left connects the solar panel to the charger. The bottom left connects the battery to the rest of the system (inverter, microcontroller, etc.). The left black button allows the user to force the battery to operate even if it’s below 70% of full charge. The right button allows the user to manually command line AC output if desired.

Doom Box (3)

Here are a couple shots with the lid removed. The system measures about 16″ x 12″ x 14″ and, with battery in place, weighs about 40lbs. I don’t remember exactly why we started calling it the “Doom Box” – perhaps it just sounded amusing. I suppose it is a potentially dangerous box to go sticking your hands in…

Doom Box (4)

Doom Box (5)I’m happy to report that the doom box worked quite well for a number of months. I strapped my 90W solar panel to a lawn chair, weighed that down with a cheap sack of marble chips, and put the whole thing out on my east-facing balcony. The AC output was connected up to an old laptop I run as a server. It draws about 35W continuously. So whenever the sun was out and the battery fresh, the laptop was powered entirely by the doom box. Once the sun moved out of view and the battery discharged to 70%, the box automatically switched the laptop over to line AC.

Unfortunately, given its location, the solar panel only saw direct sunlight for a few hours each morning, but that’s the best I could do at the time. As such the laptop was only off the grid for about 6-8 hours each day. I was also quite surprised at the difference in performance between direct sunlight and cloudy days. Very cloudy days cut down my power input by about 80-90%.

Well since this initial build I’ve modified the MCU to support a greater level of monitoring. Current sensors are now in place and the entire system is programmed to log and report its status via website. I’ve also added a second solar panel and battery. But that’s another post for another time. Stick around for dramatic stories of inverter failure!

Part II of this article may be found here!