Dual Hose Portable Air Conditioner Mod

Many portable air conditioners are known to be problematic, and often reviled, for using a single hose to vent hot air outside. The problem with which, is that the air that gets pumped outside has to be replaced in your home, and that air is just going to come in from outside.

This cycle of pumping out hot air, and that being replaced with more hot air from outside, makes them less effective at cooling spaces, and you waste electricity running them more.

They do make two-hose models, which solve this problem by using a second hose to bring in outside air to exchange over the radiator before pumping it out again, resulting in no outside air being brought into the house.

Unfortunately these two-hose models are the significant minority, and unfortunately the impacts/benefits are nebulous. When all you know is that they’re ‘better’ but not really any information on how much better, it’s hard to justify buying a more expensive model.

I’ve had a single hose model for a few years to cool my basement office/workshop space, and have left it run as designed until now, knowing that it’s ‘less efficient’ but not putting really much thought into it. However, the wildfire smoke recently made me rethink trying to retrofit my unit into a two-hose operation, and try to reduce the amount of outside air (and pollutants) being pulled into the house.

I cut and taped a cardboard box to enclose the intake portion of the radiator, and fed in some 6″ ducting from the hardware store, which matches the ducting for the exhaust, and fed both hoses out through the window.

First impressions are that subjectively it does feel like it does a better job of cooling. I don’t feel like I have to run it as hard, or turn the set temperature down as low to get the room to where I want it. However, subjective data is easily biased, and also isn’t great for convincing others.

Fortunately I have both indoor and outdoor air quality (particulate) sensors, and the data shows a remarkable change.

We are looking at a 7 day graph window, and we can see in the Indoor graph, that for a large portion of the earlier part of the week, I have been fighting to keep air quality inside the house at a reasonable level, using box fans with filters, and occasionally running the central furnace on fan mode to pull air through the furnace filter as well.

The marked red line is where I modified the air conditioner to two-hose operation. After which we see a very significant drop off and better air quality inside the house without having to run the central furnace fan/filter. Meanwhile air quality levels outside remain well above an AQI of 100, so the improvement in indoor quality is not due to an improvement outdoors.

To me, this is pretty clear evidence just how much air this portable air conditioner was causing the house to exchange with the outdoors, and how much of an impact it can have on the efficiency of cooling the house, as well as in situations like mine where there is wildfire smoke, the air quality within the house.

Posted in Life, Random, Weather | Leave a comment

Laser Cutting a Paper Solder Paste Stencil

In the process of working on a PCB for another project, I ended up with a component that was harder to solder properly than I had originally expected, and had not ordered a solder paste stencil with the board.

I ended up thinking if I could find reasonable material, I could cut a stencil for this part using my laser cutter. Some stencils are made of kapton, but I don’t have any larger sheets of kapton, nor do I think my 10W diode laser would cut it.

I ended up finding that my standard printer paper was just about the right thickness for a stencil, at about 4 to 5 thousandths of an inch thick. I was a bit worried that the finer features between the pads might tear, but it was worth trying.

Turns out, that at least for low quantities, paper makes a pretty reasonable homebrew stencil material.

Posted in Random | Leave a comment

Customizing a Smart Plug

Recently some projects around the house have been in need of some better ‘home automation’ than a standard timer can provide, so I went looking for a smart plug that was either ‘dumb’ enough for my liking (didn’t tie you to some manufacturer’s cloud service), or was modifiable with my own code.

Fortunately the ESPHome project is a great resource both for a list of devices that are reasonably easily modifiable, and for a codebase built for running your own automation on a number of IoT devices.

I looked through their list a bit, and found a few devices that were built around the ESP32, which I am already well familiar with, and which were inexpensive and easily available to me through the usual retailers. In the end I ended up settling on the Wyze Plug Outdoor, and picked up a few units.

Internally there’s some test points that I soldered some headers on to get access to the serial UART and the power pins. After hooking that up, it’s a quick process to flash some ESPHome code on the unit, or write your own with Arduino / your IDE of choice.

So far, I’ve been really happy with these units. They seem to be built reasonably well, they aren’t glued together so they’re easy to open up and reprogram, they’re suitable for outdoor use if needed, and have two individually controllable outlets.

Posted in Electronics, Random, Technology | Leave a comment

Wired Ethernet on ESP32

I’ve used the ESP32 microcontrollers for a number of projects at this point, often using the built-in WiFi radio. However, there are use cases where WiFi may be less than ideal. In my case, I’m interested in the higher reliability a wired connection offers, as well as consistent latency performance.

Fortunately, the ESP32 includes a built-in Ethernet MAC, which is the controller that manages a wired Ethernet connection. If we can pair that with a PHY, which drives the actual electrical signals on the wire, we should be able to get a working connection.

Before getting into a specific project, I wanted to put together a test board to feel out how it would work, and resolve any issues before putting it to real use. Fortunately, there’s a few references around, including a very nice open source design from Olimex that proved to be a useful reference combined with the part datasheets.

I didn’t bother to include Power over Ethernet like their design does, though that is another potential benefit over WiFi, where you can have a single cable provide power and data to a project.

I ended up testing my design by coding up a simple NTP server, and feeding the board from a GPS signal. I started with MicroPython, which is quite handy for putting together an application a lot faster than writing it in C++, but ran into performance issues that negatively impacted the quality of the time responses the board was able to return.

After rewriting in C++, the board returns fairly accurate timing responses, and would be an interesting basis for future work, though isn’t really in a state suitable for publishing currently.

Posted in Electronics, Technology | Leave a comment

GPSMON Output with UBlox Receivers

I’ve got a UBlox GPS module in a somewhat challenging RF environment (Indoor with no clear sky view, and potentially some other RF sources causing interference), and have been looking at what data I can gather with regards to the signal. The receiver is attached to a computer running GPSd, so the easiest first step it to look at what data we see in the ‘gpsmon’ utility.

Some fairly self explanatory stuff here, receiver channel, satellite ID, azimuth, elevation, signal to noise ratio, and whether that satellite is being used in the fix. However, that flag field is not entirely clear, and some google searches didn’t bring it up either. I wasn’t able to find any documentation on what that flag field represented.

We can, however, reference the UBlox datasheet and look at the UBX-NAV-SVINFO message, which is the message that contains all this info on the individual satellites being tracked, and that gpsd / gpsmon is parsing out for us.

There end up being two bytes output for each satellite, that are labelled as ‘quality’ and ‘flags’ in the datasheet, and manually parsing the raw data, I was able to confirm that gpsmon is showing us here these two bytes in hexadecimal. The first byte being the ‘quality’ byte, and the second one being ‘flags’.

To use the example of PRN 21, on channel 5, gpsmon is showing us the data ‘070D’. Now we just need to cross-reference this with the datasheet.

The first byte we got is ’07’ hexadecimal, which is 7 decimal, and that matches the “Code and carrier locked and time synchronized” state in the quality table. All good there.

The second byte we got is ‘0D’, which is 00001101 in binary, and so we see that matches with the svUsed, orbitAvail, and orbitEph bits. So this satellite is being used in the fix, and we have current orbit information and ephemeris for this satellite.

So now we now how to parse out the flags information gpsmon will provide to us for UBlox modules, and better debug the state of how the receiver is tracking the constellation.

Posted in Electronics, Random | Leave a comment