All posts by admin

Let It Slide

My older brother did a fair bit of high school math and science work assisted by a slide rule. I was too young at the time to understand the nuances of this remarkable tool. By the time I was in high school, the pocket calculator was the norm, if any calculation assistance was allowed at all. I recall my chemistry teacher encouraged us to use a calculator in his class because “this is hard enough without messing up the arithmetic”.

Between an undetermined number of calculators of various complexity and more recently, the entire internet full of specific purpose calculators, I never had cause to acquire or learn about the slide rule. I am at a point in my life (an age?) where such mechanical devices are fascinating.

A couple of years ago, I was watching something on YouTube and the subject of sliderules came up. Shown in that video was a sliderule configuration that I found quite compelling, the circular slide rule. Specifically, the Russian KL-1. Turns out they are not stupid expensive and a bit of eBay shopping revealed one from the early 70’s for a price I was willing to pay.

A slide rule is, at it’s most basic, a device inscribed with markings spaced according to a logarithmic scale. Logarithms are their own subject and there is much more to it than this, but the layman can think of logaritms as a numeric series where each next major number is a multiple of the previous, such as 1, 10, 100, 1000, etc where each mark is 10 times the previous mark.

We use computers to calculate logarithms these days, but hundreds of years ago, math and science practicioners generated books full of logarithms so that they could be looked up in a table rather than calculated each time it was needed. John Napier, a Scottish polymath, is credited with introducing the use of logarithms to simplify other calculations. In 1614. So, not yesterday.

One of the most helpful properties of logarithms is that the logs of any two numbers added together will equal the log of those same two numbers multiplied together.

This has the effect of simplifying multiplication problems down to addition, though you need some way to know the logarithms.

For our purposes, b is 10, so we are working with base 10 logarithms.

The log of x plus the log of y equals the log of x times y.

For simplicity, lets use 2 and 3 for x and y.

Log(2) + Log(3) = Log(6)

Now, Log(2) = 0.30102999 and Log(3) = 0.47712125. Those added together is 0.77815125. Since we are using base 10, 10 to the power of 0.77815125 turns out to be….. 6!

The scales on our slide rule gives us an easy way to add those two scary small numbers because someone else marked the scale in logarithmic intervals, forming a lookup table of sorts.

For the moment, let’s focus on the C and D scales, shown by the green arrow. These are identical log base 10 scales. Logarithms for numbers less than 1 are negative numbers, so the scale starts at 1, shown by the red arrow. 2 is shown by the yellow arrow, 3 by blue and 4 by purple.

Next, lets say that our scale is some arbitrary number of units long. It doesn’t matter what units unless you are actually making a slide rule, which I want to do now. 🙂 As luck would have it, the slide rule in this picture has the L scale, which shows the actual numeric value of of the log shown in scales C and D. The L scale is linear, beginning at 0 and proceeding evenly to the right. For our purposes, we can consider the L scale to be a ruler.

Log 2 is 0.30102999. The distance from the red arrow to the yellow arrow on the L scale is 0.3 or so.

Log 3 is 0.47712125. The distance from the red arrow to the blue arrow is 0.47 or so.

Log 4 is 0.60205999. The distance from the red arrow to the purple arrow is 0.6 or so.

By itself, that seems maybe obvious. But what this means is that we can represent the logs of our various numbers by the physical distance they are from 1.

2 x 3 = 6

log(2) + log (3) = ?

0.30102999 + 0.47712125 = 0.77815125

Find 0.77815125 on the L scale (no arrow shown) and it is [drumroll] …. 6! 6ish, anyway, because we are really only able to see 0.775ish on the scale.

This reveals what people accustomed to the instant precision of electronic calculators may find challenging about slide rules. In practiced hands, they are very fast, but not super precise. However, they give an answer that is almost always going to be close enough for most purposes. If someone needs to figure out how many degrees 1/7th of a circle is so they can cut a wooden circle into 7 pieces, 360 / 7 = a hair less thatn 51.5 is close enough for a saw.

Multiplication on the sliderule shown is accomplished by sliding the inner movable scale until the multiplier on C scale lines up with the 1 on the D scale, then move the cursor (the clear slide with the line across it) to the multiplicant on the D scale, then read the result on the C scale.

I don’t have a classic slide rule, but I found a wonderful site with slide rule simulations.

The arrow on the left shows the multiplier 3 lined up with 1 on the D scale. The arrow on the right shows the cursor lined up with the multiplicant 2 on the D scale and the answer 6 revealed on the C scale.

Doing larger multidigit numbers can be done with fractional distances. 30 x 20 = 600 for example. Using 3.0 (times 10 in your head) and 2.0 (times 10 in your head) = 6.0 (times 100 in your head; 10 x 10). If you need large numbers with high precision, just use paper to do long form multiplication and use the slide rule to do the arithmetic in each step.

33 x 21 = 690-something-between-0-and-5. It’s 693 precisely.

Nothing says that the scales need to engraved on something straight. Enter the KL-1.

There are many other circular slide rules and even other models that emulate a pocket watch like this one does. In this case, this side has what is essentially the C/D scale printed on a movable face and two cursors. One cursor is fixed, here aligned with the 1 and the knob which turns the face. The other cursor is the red hand, which is moved with the other knob.

The procedure is slightly different, but still works under the exact same principles. The outer scale is essentially A scale in typical slide rule parlance. Turn the face until the multiplier aligns with the fixed cursor, 3.9 or 39 in this case.

Note that the inner scale is labeled C and the written instructions say it is to be used for basical calculation. If I use the inner scale, the multiplication math still works, but the outer scale has more divisions and is thus is more precise. The inner scale become more important used in division and square root calculations, covered a little later. The A and C scales correlate. The A scale numbers are the squares of the C scale numbers. I have NO understanding how this helps with division. I have much to learn.

The hand is rotated to 1 on the scale. These two steps are equivalent to sliding the scale to line up the mulipler on the C scale with 1 on the D scale.

Then the scale is rotated until the multiplicant, 2.1 or 21 here, is aligned with the red hand. The result is read at the fixed cursor, a hair less than 8.25 or 825. The precise answer is 8.19 or 819

The other side of the KL-1. Interestingly, written instructions call this side 1. It has three scales and another red hand cursor. The scales don’t move, but the hand does. The outer scale is the inverse of the inner C scale on side 2 and is called the DI scale. The other two are the S and T scales, used for sine and tangent trigonometry functions that I don’t yet know how to use. Note that the T scale is a 630 degree spiral. I have much to learn.

Division is similar in that Log (x) minus Log (y) = Log (x/y). The procedure for division is similar to multiplication.

Rotate the outer scale to put the dividend under the fixed cursor, 16 in this example.

Rotate the red cursor to the divisor on the inner scale, 2 in this case.

Rotate the inner scale to put the dividend, 16, under the red cursor. The quotient result, 8, is read on the inner scale under the fixed cursor.

125 / 65 = ?

Put 125 in the outer scale under the fixed cursor and 65 in the inner scale under the red cursor.

Rotate the scale to put the outer scale 125 under the red cursor and read the quotient from the inner scale under the fixed cursor. 125 / 65 = 1.92. The precise answer is 1.92307692, but I think 1.92 is definitely close enough.

The markings on the inner scale show greater precision (0.12 per division) for values between 1 and 2, slightly less from 2 to 6 (0.25 per division) and even less from 6 to 10 (0.5 per division). This might be due to the range of expected results. The closer to 1, the more precision needed. However, I think it is really a horological artifact. The divisions are physically similar in size, but the logarithmic intervals are progressively smaller as the values go up. The lines are all about the same size in degrees of arc, but this is simply room for more divisions between 1 and 2 than there is between 6 and 10.

The Trouble With Island Life

When last we left our heroes, Home Assistant was running via SD card on a Raspberry Pi 4 B with 4GB RAM. Why was that not OK?

Well, the biggest thing is that SD cards have a finite life and as the primary hard drive for a continuously running system, it is subject to significant writing action over time. The operating system does stuff, Home Assistant does stuff, both of them log activities, etc. Some SD cards are optimized for longer write time, but in short, SD cards can actually wear out.

The SD card I used to install Home Assistant on the Raspberry Pi was not new, but probably has plenty of life left. Still, I’d rather use a drive intended to be a hard drive.

Running a Raspberry Pi on an SSD drive is pretty simple, though with the Pi 4, we are limited to USB adapters. I didn’t want to have such a critical component hanging on the end of a plug in cord, so I was happy to see a recommendation for the Argon One case for the Pi4. Specifically, I ordered the case equipped with an M.2 SATA adapter, along with a relatively unknown brand 64GB M.2 SSD.

The Argon One case is pretty nice in several ways, but the cool part here is that the basic case holds the Pi 4 in the top of the case and bottom cover is interchangable for a plain bottom or a bottom equipped with an M.2 SATA adapter. It uses a clever U shaped plug to connect the adapter to the bottom USB 3.0 jack on the board.

The Argon One case adapts the micro HDMI on the Pi4 to standard HDMI, if that matters to ya. In my application, I don’t need it, but if I use a Pi for something else, that will no doubt be handy. It also adds an actual power switch and still gives access to all the I/O pins.

Since I was upgrading anyway, I checked stock at Adafruit and found that they had 8GB Raspberry Pi 4 boards in stock, so I got one of those on the way as well. May as well do all the upgrading at once and be done with it for a while.

The process for setting up a Pi4 to boot on SSD is pretty straight forward. First, I used my USB to M2 adapter to put a Home Assistant image on the 64GB SSD, the image provided by Raspberry Pi Imager. Then in the utilities section, there is an image to put onto an SD card that sets the boot order in the Pi to try SSD first, which I burned to a handy SD card I had laying around. I booted on that SD according to the directions, then booted on the SSD in my USB adapter and it came up. I did not do all the setup as I wanted to wrap everything up in “permanent” fashion in the new case first.

It was at that point that I discovered that my 64GB SSD would not quit fit the socket in the case adapter. Much trial and error and even a little forcing revealed that, although it was not mentioned as so on the ordering description, the 64GB SSD was apparently an NVMe SSD and the case adapter specifically is not NVMe compatible. Not only was the non-NVMe drive a little cheaper, all indications were that NVMe speeds were wasted on Raspberry Pi hardware. None of that would help me right then.

I also found that M.2 SSDs that are verifiably not NVMe are really hard to find. Apparently nobody is looking for slower stuff anymore. If I found one at all, shipping times were long. I decided that the best bet was to look back to Argon One and get their upgraded NMVe base.

It took a couple of days to arrive and a few more to reach a point when I could dedicate some time to work on it. Everything looked ready to go, but the 64GB SSD would not boot up. As part of verifying it, I put it back in the USB adapter and put it on my PC. The PC would show the adapter plugged in, but as a drive with 0 bytes. Long story short, after several attempts at recovery, I concluded that somewhere in the previous attempts to use it, perhaps in the steps involving force, I must have damaged it. I gave up, drove to WalMart and got a Western Digital 500GB NVMe for less than $50. I think it may have been $34, but I don’t remember for sure.

Back in the late 1990’s, I was in the San Francisco area for work. We went to the local Fry’s electronics and found they had a fantastic deal on 1GB SCSI hard drives for about $300. It was still a lot of money, but imagine what I could do with a GIGABYTE of hard disk space?!?!? Try to find something that small now. Not even at WalMart.

Anyway, skip back to the part where I put the images on the SSD and from there forward, everything worked perfectly, including backing up the “old” 4G system and restoring it on to the new system. My Home Assistant is now running on a Raspberry Pi 4 with 8GB RAM and a 500GB SSD with 458GB free space.

The new case provided two big improvements. First, while i liked the heat sink wrap ‘case’ I had it in before, the Argon One case does look better, especially to my primary customer. Second, the fans on the heatsink case were iffy on day one and one of them had already just quit, so it ran hotter than it needed to. The system is inside a closed cabinet with a 16 port PoE switch and two NAS units, so it’s a little warm in there already.

The big improvement, however, is speed. Particularly if a process involves reloading or rebooting, the SSD is significantly faster than the SD card. Updates take far less time than they used to, which is important since there are so many of them, especially at the beginning of every month 🙂

If I were to pick one disadvantage to this new setup versus running Home Assistant as a virtual machine on the NAS, it’s that the VM method gave me the snapshot tool. With it, I could completely hose the system and have a snapshot to restore from, either the automatic weekly snapshot or if I thought I was going to break something, a specific ‘before’ snapshot. There isn’t really a substitute for that particular freedom with the current setup.

Moving Off The Farm

No, not me. Home Assistant, moving off the server farm. The tiny tiny server farm.

My Home Assistant instance runs ran as a virtual machine hosted on my Synology NAS. It had grown enough that after the last update or two , it had started hitting some performance limits for the virtual machine settings. It can take 30 minutes for a reboot to complete and I have had to wait overnight for everything to settle down. It would probably help if I started these tasks before bedtime. Anyway, the CPU never shows as super busy, but the memory climbed up in the 80% range a few times, so I presume that it had run short enough on RAM to started paging virtual RAM. The RAM, already virtualized, being substituted by virtual RAM from a hard drive that is busy recording video from a bunch of cameras plus doing other NAS stuff can’t be the best way to do that. I can understand why performance would suffer.

Unfortunately, there weren’t enough resources available to resolve this in the Synology. The NAS is a DS220+, which is configured with the maximum of 6GB RAM. The Home Assistant VM was configured with 3GB and the system would not let me bump it to 4GB. Understandably, that would leave only 2GB for everything else the NAS is doing. I was able to walk it up to the max it would let me assign, 3683 MB and that took two runs at it. After all that, it wasn’t enough to make any difference.

A few weeks ago, I noticed that Adafruit had the Raspberry Pi4 back in stock. I wasn’t specifically thinking of migrating Home Assistant when I ordered it, but after the last Home Assistant update traumas, I thought it might not be a bad idea. After all, my thoughts have been to migrate Home Assistant to a fanless PC I have.

Not my picture, but this is the unit I have 🙂

Anyway, because the procedure for deploying Home Assistant on a Raspberry Pi is well established, streamlined and pretty easy, I elected to go for it and see how it went. I didn’t really time it, but from the time I decided to start until it was up and working with all my existing devices was no more than 2-3 hours, probably less.

I have proof that my Home Assistant instance had grown a lot. I made a backup about a year ago in a test run to move off the VM and on to the Kodlix GN41 hardware. While that was semi-successful, I elected at that time to stay on the VM. In any case, that backup was still on the system. The current backup was only 6 times larger.

Immediately, I could tell that the GUI was more responsive. I also restarted it a couple of times and the system was up in way less time, minutes instead of hours.

Due to extreme frustration a few months back, I removed the USB dongle for ZWave and basically decided that Zwave was less important than an otherwise stable system. I absolutely needed the Zigbee dongle because several devices, most notably the lights and fan in the back yard, as well as all of the battery operated sensors, are Zigbee. I essentially abandoned ZWave. The only active ZWave devices at the time were two wall switches for some outdoor lights and a few underutilized signal repeaters. The two switches were replaced with Tasmota switches and I moved on.

One of the issues that I seemed to have with the Synology VM was that the USB subsystem is apparently pretty sensitive to disconnection. If something disconnected the USB cable or I had sudden amnesia and forgot that this caused problems and unplugged one of the dongles, it would be an absolute crapshoot as to whether it could come back without arcane procedures, most of which probably did nothing. Also, from what I can tell, the VM would not pass more than two USB devices to Home Assistant, which meant I would not be able to add anything other than the two dongles.

Emboldened by the success with the RPi4 thus far, I plugged the ZWave dongle back in and found that it came up without issue. Of course, no devices are deployed, but there is time to do that. This is cool because I have a Zooz ZEN32 scene controller that I do want to use, which is why I got it! I am looking forward to replacing one of the three way switches in the kitchen then using the other four buttons on it for various outdoor switches.

Speaking of outdoor switches, I had gotten a little lazy and let the batteries go on several of those Zigbee devices. With the new controller in place, I woke all that stuff back up and had forgotten that I had set up a couple of neat automations.

I have one that turns on the back yard lights when the back door is opened after sunset. That is almost always going to be when letting the dogs out. Then again, we just about always turn the lights on before letting them out, which can be done with either a voice command or a button mounted by the back door. 🙂

I also have a couple of handy, if slightly irritating, automations that announce if the refrigerator door is left open for too long. This was intended to help address a problem with the garage fridge, where heavy loading can sometimes cause the door to not close completely and it’s easy to miss it. I put regular door sensors in place, the transmitter on one door, the magnet on the other. If either door is not closed within two minutes, Home Assistant announces through three of the Alexae and sends a notification to my phone. The problem is that the kitchen fridge doesn’t reliably sense the door closing, so pretty much any foray into the box is reported as it having been left open 🙂

Before the hardware swap, one of the updates had a change that somehow broke the motion activated switch automation that I had in place in my workshop. I had followed some timer advice offered by Smart Home Junkie to use a motion detectors to automate a light in my workshop. This worked really well, but a December 2023 update apparently moved some cheese and broke that process in some way. After the update, the timer elements in this automation showed up on the System/Repairs list. I did some digging and found a blueprint that actually does a MUCH better job of automating not just a motion controlled light but really any binary sensor controlling any switch or scene or even another automation. It also has gobs of options for behaviors based on based on schedules or other sensors. A motion detector in, for example, a bathroom, might do nothing during daytime hours, turn on the room light after sunset, but turn on only a nightlight between midnight and 8AM.

I am going to update that back door automation with this blueprint. I need to resolve the kitchen refrigerator door sensor issue, probably by putting some spacers to get the magnet away from the metal door. My burglar alarm career experience pays off again.

The most exciting thing coming down the pike is native voice control. I have the parts and guide to build a custom speaker/mic device using ESPHome to perhaps wean us off the Amazon cloud dependency that is Alexa.

Incidentally, I have a coworker named Alexa who goes by Alex to avoid the unintended consequences of speaking her name aloud. I presume she resents having her life hijacked by a system that offers only lesser wake words as alternatives. Surely Amazon has the computing power to offer more than one alternative. Then again, branding: nobody doubts that the name “Alexa” really belongs to Amazon now. I’m sure they would copyright it if they could.

It occurs to me that the powers at Amazon probably did massive amounts of data sorting to find a name that was:

  1. Probably feminine
  2. Not a very common name, like Mary, Linda, Susan, etc.
  3. Unique enough to not often be confused with other common words (Mary: airy, Barry, berry, carry, dairy, fairy, Gary, hairy, Harry, Jerry, Kary, Kerry, Larry, merry, nary, parry, Perry, query, tary, Terry, vary, very, wary)
  4. Ok, maybe more than just those things

Remember Home Assistant? This is a post about Home Assistant… 🙂

I have a couple of M5 Atom Echo devices, but I have had some trouble getting them to come up. Not sure if it’s me or them, but I have had good success in the past with ESPHome and the ESP8266 and the ESP32.

The voice module is just 4 components, an I2S microphone module, an I2S speaker module with a 3W amplifier, a speaker and the ESP32 microcontroller. This will be my first foray into I2S audio connected to a device. I2S is basically a synchronous serial protocol consisting of a data line, a data clock line and a ‘word select’ line that is more commonly called the left/right clock. The data line and data clock carry audio information, typically but not necessarily encoded at 44.1 kHz, with the word select alternating to indicate whether the data is for the left or right audio channel. In the case of this monophonic device, I presume we don’t need 44.1 kHz audio or two channels but ESPHome actually does most of the heavy lifting here and I have not done the deep dive as yet, but I did learn from a shallow dive that I2S requires the ESP32 and is not supported in the lighter ESP8266 variant. That might double the price from $3 to $6 🙂

Down Range Upgrade

A select few interested members of the shooting public saw the gadget yesterday. Reception was generally positive and a couple of suggestions will make it into future versions.

I was already going to remake this one to solve a couple of serious issues before it gets used in a real match in a couple of days, most importantly getting the pull rod away from the lock motor. I spent a good chunk of my Sunday doing just that. Behold the improved whickerbill:

Starting from the yellow arrow at the bottom center, there is now gobs of space between the pull rod and the lock motor. Incidentally, the case of the lock motor was actually breached by all the activations in show and tell yesterday. No internal damage was done. I will seal up that hole to keep dust and particularly shop metal shavings out of the very magnetic motor.

Proceeding clockwise, the red arrow points to the new longer but simpler sear. Rearranging things has let me avoid the relief cut that was in the back of the previous sear. The arrow more directly points to what is probably not an issue, but this is a more intense angle. I think I didn’t account for exactly how far I moved the rod when I moved the sear pivot. The sear pivot could really be moved another 1/4″ closer to the rod. It still works perfectly, but this is an area to keep an eye on and I will correct this in the next version.

Continuing clockwise, the blue arrow points to the new articulated link between the sear and the lock motor. I envisioned this in the original design, but just by dumb luck, the previous layout let me skip this link. The new layout requires it, plus it removes some binding strain from this point. This particular link was hand made, but there are some commercial options that I could leverage to save the time and effort of fabricating my own.

Next Vanna is pointing with the green arrow at the input jack, a heavy duty 1/4″ jack intended for speakers. This is not an actual Switchcraft Z15J (those things are rated for 15A!) but I do not expect my little motors and relays to tax it. The purpose, of course, is to make deployment easier. To that end, I also have some 50 foot speaker cables with 1/4″ plugs on either end.

Finally, the purple arrow is pointing to the timer relay. It was kinda halfass bolted down in a weird way on the rush-to-show previous box, but with the pull rod scooted over, there is room to more properly mount it using 3M VHB tape, which means I hope I don’t need to remove it anytime soon.

All this movement still fits nicely inside my 2×4 rectangular tubing, which I derusted with a Scotchbrite belt on the 2×72 grinder, but failed to take a picture of. Soon.

Speaking of fitting in the tubing, I used a seamstress measuring tape to measure the as-built length of the old chassis, from the top edge of one end, across the bottom to the top edge of the other end. Since this chassis is 5/8″ too long, I subtracted 5/8″ from this measurement and cut my new chassis to 14-7/8″ long with the newly secured Vevor shear.

This shear is not even the biggest one they make and it is still kind of a monster. It chewed up my workbench top when I used it to trim a 3″x1/8″ flat by securing it in my bench vise. My first task this morning was to find this thing a place where it could live without destroying everything around it in use. I will one day figure out where in the workshop I can put it, but for now, it is mounted to a beam in the barn!

It does an outstanding job on this 1/8″ steel material, though I find that I do need to haul down on the handle with both arms for the longer cuts. That is more testament to one titanium shoulder and one iffy shoulder than anything about the shear itself. However, the shear does produce an excellent edge finish:

Thinner material or shorter cuts are just about trivial. The new sear was made in four cuts with the shear and minimal grinding.

Anyway, once I had the chassis blank cut to length, I measured the inside height of the ends of the old unit, marked that distance from teh ends on the new chassic and drilled holes to assist with bending. I fired up the acetylene torch, heated the drilled area and bent the ends. Everything went quite well.

I guess I didn’t account for the stretch on the outside of the bend when I measured and substracted 5/8″ to shorten the chassis. The new chassis ended up 12-1/2″ long, only 1/8″ shorter than the old one. I was aiming for exactly 12″ long.

The math kinda works. 1/8″ thick material in a 90 degree bend would intuitively stretch out 1/4″. I have two bends and my actual chassis is two times 1/4″ too long. I should have subtracted 5/8″ for the basic length to shorten and another 1/2″ since I was going to add two bends, so my flat blank should have been 14-3/8″ long to be 12″ finished length. We will see if that works out on the next one.

Down Range Tugger

After discussing various match needs and ideas ideas and looking at some powered devices as they were deployed at the IDPA World Championship, it occured to me that it might be handy to make a device to reside downrange to activate movers electrically. The more I thought about it, the simpler the device became. Then, it got a little more complexity added back as I will need to protect people from themselves. 🙂

Conceptually, this device needs only the mechanics to yank on a cord or cable to activate a device and since it is downrange, it doesn’t have to pull 50-100 feet of steel cable, so it doesn’t actually need to be super strong. Electrically, it needs to trip the puller rod and not damage itself.

I gathered quite a few more parts than I probably needed, including a trip down a dark alley of cheap timers that I probably should have stayed out of. I drew up some rough plans a couple of different times to at least get a picture in my mind of what it should look like then in one quick evening of building, I threw together 90% of it.

Of course, being a prototype, there are some issues, all of which will be address by fine-tuning dimensions. For example, I cut the base plate presuming I would have 2 inch bends on each end to fit inside the planned 2×4 rectangular tubing I plan to use as a slide-in case. I remembered in time that the inside dimensions of that tubing will be less than 2 inches, so I shortened the bends to account for that. I did not remember to shorten the whole base plate accordingly, so now I will need a slightly longer piece of tubing for this particular unit. I had planned on just having the supplier cut me a bunch of 12″ lengths of tubing. Well, I am still doing that, just I’ll need to arrange a longer one for this one prototype, if I arrange any case for it at all.

There is room to move the pull rod farther from the unlock motor, especially since a spring will be pulling a bolt past this plastic part over and over and a collision seems bound to happen. Also, while it’s not a serious issue, the pull rod holes are not the same size. I used a step drill and drilled one step too far on the hole at the back. Maybe that is accidentally why is works really smoothly…

I am pretty happy with the sear design. Like everything, I hope to refine the dimensions and location to simplify construction. Originally, it had a nice, easy to grind, square corner. Unfortunately, to ensure that it clears the clevis on the lock motor, I had to cut some relief out of it, which means more time. There is room to move the motor more to the right, which will help that, but then the pivoting corner will no longer be square. One way or another, it will work out.

The pull rod has a simple notch filed into it. To arm, the rod must be in the correct orientation, which is marked on end of the rod. As a side effect, the pull rod can be disarmed without power by pulling and turning it slightly to disengage from the sear. A future design may have this notch replaced by a groove around the entire diameter of the rod. I will address this manual disarm feature in some other way, but the trade off will be worth it.

I have been gathering pieces and parts from all over, but a lot of it came from Amazon. Amazon is not typically the best price, but for prototyping purposes, it is very nice to click a few times and have it at your door the next day. I got stuff to do!

It doesn’t always work out, though. The heart of this mechanism is a car door lock motor. I chose that because it is fairly cheap, pretty strong pulling with about 5 pounds, and it does so without pulling gobs of power like a solenoid would. Since it is basically a brushed DC motor with some modest gearing, I can throw power to it to pull it in, then use a spring to pull it back out to the rest/locked position. However, many (or maybe most) of the ways to trigger a device for stage shooting purposes would result in power being applied to this fairly delicate motor continuously pretty much from the start of one shooter until make ready for the next. Few motors, but especially not cheap motors, survive that kind of abuse, so I knew I needed to apply power for only long enough to trip the activator then remove power until the next activation. This will also conserve battery power. In my day job, I have used timer relays for similar tasks, so that seemed the way to go. The timer relay I am using is a nice industrial lego part. This particular device has several modes, but I am using the “one shot” mode, which times out once for each application of power. I have it set for about a half second, maybe a little longer. So every time power is applied to the device, it will power the door unlock motor for about half a second, long enough to disengage the sear, then power it off until it is reset by dropping and reapplying power again. Simple and elegant.

This timer relay is the single most expensive part of this whole machine. Without it, the lock motor will fry. This relay is $36 via Amazon and typically more from Mouser or DigiKey or any of a handful of automation suppliers that I shopped. I did find the timer relays for as low as about $11-15 via AliExpress, which is significantly better, assuming everything one must assume about sellers on Alibaba.

I got very happy when I found some 555 based timer boards on Amazon for something like $1.35 each in lots of 20. I considered it worth trying and ordered one lot of 20. The boards came in and I found that they were easy to configure like I needed, apply power, disconnect after about 1/2 second, reset after dropping power. The first time I actually connected the lock motor to one of them, it immediately just started pulsing on and off every half second, even after I disconnected the motor.

Some electronics can be sensitive to inductive flyback. When a coil, which is basically what a motor is, has power disconnected from it, the collapsing magnetic field in the coil will induce a voltage of the opposite polarity in the connected wiring, often a destructively high voltage. This is great for the spark plugs in your car, but less so for $1.35 timer boards made in China. You can generally protect devices from this voltage spike with the application of a diode in the proper orientation, so I set up the second timer board with a protective diode in place. Never mind that there is obviously such a protective diode in place ON the timer board. Anyway, once the motor was connected, that timer worked about three times, then locked into a mode where it just turned on when power was applied, like all that circuitry did nothing at all. It became a complicated power indicator light. Maybe my 400V diode wasn’t big enough, but I have hundreds of them bought for the purpose and they have worked elsewhere.

Two out of two timer boards, toasted. I guess you get whatcha pay for. So, it doesn’t look like I am going to be able to use $1.35 boards to replace the $36 relay. Best I can hope for is that the $15 AliExpress relays due to arrive at the end of November are the same as the ones I have. Maybe I can find something to do with the other cheap timers, something that doesn’t produce an electric spike.

Hmmmm While editing this, it occurs to me that I have all the test equipment I need to see if this is actually the issue. I may tackle that because these little boards represent a lot of material cost savings.

Speaking of the timer and its effect on power…. I tested the timer relay, lock motor and rechargeable battery for endurance by running a simple test overnight. The battery I have used for all my development is a nice portable 12V 6000mAH lithium battery pack with a coaxial power outlet and a switch. As an aside, I have recharged this battery pack maybe 3 times between March and November and never because it was dead.

Anyway, I had the lock motor, timer relay and battery connected. I used a second timer relay configured in pulse generator mode, set to trip once every 30 seconds and wired to trip the other relay and the lock motor. Once I had that running, I left it on the workbench overnight. The next morning, about 6 hours later, it was still running. In 6 hours, the relay (both relays, technically) and lock motor had cycled about 720 times. The battery was between 40% and 60% charged. That day was one of the times I charged it back up.

Before I settled on a 30 second interval, I had it triggering much much more rapidly, but I found that both the lock motor and the relay were getting warm to the touch and the lock motor uncomfortably so. Running it so rapidly mean that it spent more effective time at stall, especially as in that testing scenario, there was no return spring on the lock motor plunger, so it would have spend more time in the fully retracted stalled position. Slowing the test to 30 seconds was a little more realistic, giving the motor rest time between shooters, but still let me run many hundreds of tests.

I happened to source some springs from Grainger, including some 6 inch main springs. I am attaching the spring to the pull rod with generic 10-32 hardware. There is a nylon lock nut up top only partly visible in this shot.

The other end is currently connected with the homebrew version of a spring anchor, which I didn’t realize was a big enough thing to have it’s own specialized distribution industry.

Mine was made by grinding flats on either side of a #10×32 screw then drilling a suitable hole in it. Note that my drilled hole not well centered, so the 1/4×20 factory made screw anchors I just picked up today will probably work out better or at least last longer. They were surprisingly expensive at $5.70 each, but then: Grainger.

Not much cheaper anywhere else, but I can at least find them smaller than 1/4×20. On the other hand, short 1/4×20 machine screws are really cheap and would arguably be easier to make into homebrew spring anchors 🙂

The locations where my lock motor and sear ended up limit the available space to use an extension spring for the sear return. I found this torsion spring at a local hardware store. I was able to modify one leg to keep it from slipping off the sear and I added a screw to use as an anchor for the other end. I also had to change out the sear pivot as I had trimmed the original to length.

It works perfectly! I may seek out this spring for the permanent design.

This image also really shows how close the pull bar and the lock motor are and if you look in the shadows on the left side of the lock motor, you can just see where the pull bar spring anchor has gouged on the plastic case.

In a little wider view, here is the meat of the mechanism. At this point, I still have the step plate switch wired up, but that is just because it was easy to leave it in place while working on the electromechanical bits.

It is unclear how helpful the shock absorber really is, but it consists of a thick rubber washer backed up with a grade 8 steel washer. The grade 8 washer might be overkill, but that’s my favorite kind of kill.

At the point where the sear latches, the rod and spring is pulling just over 12 pounds, which should be enough to activate any mover I have personally ever come across. I have my force gauge in my gear bag so that I can measure the required pull of any movers I find in the field. I also have a (very) small army of field operatives making similar measurements.

Before this particular unit gets exposed to the public in hopefully less than a week, it will undergo three fairly major changes.

First, I need to move the lock motor away from the pull rod. As predicted, the motor gets hit every time by the screw attaching the spring to the pull rod. It only needs to move a small distance, though I need to keep the full width of the chassis under 3.75 inches to fit inside the 2×4 rectangular tubing case.

Since I brought it up, next is the case. It might be important to point out that the unit as pictured here will be mounted upsidedown in the case so that mounting bolts will be on top of the case instead of on the bottom. This will be better for indoor use on concrete floors. I have ordered some steel, including 2″x4″x11ga retangular tubing, 3″x1/8″ flat bar and 1/2″ round bar to have plenty of components to make more units. I have ordered them precut as needed, so that should help cut down on time and effort. As I write this, my steel order might be ready today, but probably not until tomorrow. There is, however, every chance that this specific unit may not end up in a case

Finally, I have a little rewiring to do on this unit. The beartrap details are not needed for it, but I would like to add a terminal strip and a protective bridge rectifier to keep a future yahoo from connecting the wiring backwards. I think the timer relay may be build smart enough to tolerate that, but why risk it?

I would also like to build an accessory box to make it easier to connect a variety of triggering minutia to the system. Basically, a box containing the battery and a couple of switches. It could easily fit into an ammo can. First a switch to enable/disable the downrange device so that no matter what someone does with a triggering device, it will not trip the activator. It would be nice if this had a bright flashing red light near the start position of the stage to warn that the activator is not enabled. It will also have an input “polarity” switch for choosing whether the activator responds to closing a contact or opening a contact. A dead man switch or step off plate would require a closed contact that opens to trip downrange. A step on plate or a photo electric bean would require an open contact that closes to trip downrange. This function simply requires the relay to translate invert the normally closed contact operation. Another timer relay might be deployed to ensure that devices with really short closures would still reliably activate the yanker. An adustable delay could be added so that activation does not occur immediately when the trigger even happens. Finally, this box could even provide an easy source of 12V power for devices that might require power such as photoelectric detectors.

Reach Out

I have mentioned the WiFi camera at our front gate before. It has come up in a discussion about the power system for it and in a mysterious DHCP flooding issue that was discovered when I began looking at router logs.

As it would turn out, the DHCP issue was because the camera would not usually hear the router. The conversation would basically be:

Camera: Hey, can I have this IP?

Router: Sure, sounds good to me.

Camera: Hey, can I have this IP?

Router: Sure, sounds good to me.

Camera: Hey, can I have this IP?

Router: Sure, sounds good to me.

Happily, the camera would default to the last IP it had and since the data was largely one way from camera to NAS, I didn’t really miss anything. Neither did it occur to me that the DHCP messages were a symptom of this one-sided communication, though it seems obvious to me now.

Once this occurred to me, I took some steps to address the problem. When I installed the ceiling mounted APs in the house, I had the wall mounted APs laying around. This model provides passthrough PoE, so I took it into the attic at the garage end of the house, closest to the gate camera. The driveway camera is PoE, so I reconfigured the cabling so that the cable powered the AP and the AP powered the camera. Then I reconnected the gate camera to WiFi and the attic AP was now a better signal than whichever one it had connected to before and the DHCP issue got better.

It did not go completely away, but now instead of DHCP requests several times per minute, all day, every day, it reduced to bursty, frequently everyday. I don’t know what made it work better sometimes than others, but it was definitely better.

I still wanted it to work correctly. I ordered an actual outdoor AP. I was going to quickly set it up for testing before permanently installing it and headed into the attic with it. I suddenly relized that the new AP doesn’t do the PoE passthrough as would be needed to have both the AP and the wired camera without running another CAT5 cable.

For the test, I connected the AP and even with it in the attic, the gate camera made only one DHCP request for the entire 30 minutes it was connected, which was definitely an improvement. I went ahead and drilled the hole and mounted the AP outside.

I had decided disconnect the wired camera for a day or two while I waited for the final piece of equipment to arrive, a USW-Flex switch. The USW-Flex is a 5 port switch that is both powered by PoE and provides PoE, within a reasonable power budget. As luck (and shipping) would have it, I had it the next day. It went in like a breeze.

The nails it is nestled between just happen to already be there and work perfectly to hold it in position where can see it lit up from the attic stairs.

The ports are limited to 25W max each and 46W total, at a temperature maxing out at 131F. The power ratings are reduced at higher temperatures. The high temperature range tops out at 149F and that range derates the maximum PoE power available to 25W. It seems obvious that Ubiquity expected these units to be deployed in attics where someone would use it like have to keep from running another CAT5 cable.

The AP and the camera each draw less that 5W each. I have two ports available for adding cameras as well. Assuming I stay with similar cameras, that seems likely.

Oh, and the gate camera does one DHCP renewal per hour, which is as it should be. And the frame rate increased.

Perfect Little Storm

Home Automation really is a kind of delicate balance of things that really aren’t supposed to happen at all, so when it all works, we are so happy. Even though it was a pain in the butt, I found this particular failure somewhat entertaining. I also learned a bit in fixing it.

We have a Roomba. There are a few places where I have deployed Roomba Virtual Wall devices to corral her (Your mileage may vary, but I’m pretty sure mine is female) and keep her out of areas where she will get into more trouble than she can get out of. One such area is under a chair where there is a floor mounted outlet with an extension cord plugged in and another is under a couch where that extension cord continues and powers a lamp at the far end of the couch. This lamp is equiped with a smart bulb, specifically a CloudFree Tasmota based smart bulb.

The batteries have gone out in virtual wall under the chair. Roomba was thus not restricted and in her wanderings under that chair, the cord was partly dislodged. This left a bad connection for the extension cord and intermittent power to the lamp. This was not detected immediately and the condition may in fact have been present for several days without incident. Last night, however, I walked through the room and upon stepping on the rug that this furniture is on, I saw the lamp flicker. That made me investigate and in that process, it would appear that the timing requirements of reboot cycle reset sequence were satisfied (either just then or perhaps earlier) and the bulb began flashing, a sure indication that it had been reset and lost it’s configuration.

It would take a while to discover the details but it would turn out that it had been reset hard enough for the ESP8266 controller in the bulb to have forgotten what it was connected to, to have forgotten that it was once a light bulb!

The ESP32 family of microcontrollers is extremely popular with manufacturers of smart devices. It is designed to do that sort of thing. Tasmota is essentially a replacement operating system for ESP32 microcontrollers, writen specifically to support the kinds of peripherals that common smart devices have on board. Many smart devices have the necessary physical connector or at least the solder pads on the circuit pad to connect to and reflash the device’s storage so that off the shelf devices can be ‘upgraded’ to Tasmota.

In the case of my CloudFree smart bulbs, the come from CloudFree already flashed with Tasmota and ready to use. Chances are that these are the same smart bulbs that some other company (or many other companies) sells, maybe Tuya or someone else, but they are still just a mass produced Chinese product with some LED peripherals connected to an ESP32 controller.

To operate an LED array, the GPIO pin needs to be configured as a PWM output, whereas to operate a switch, it would need to be a digital output. There are a handful of options. Tasmota simplifies controlling these options by a shorthand called templates. You create a template with a string of parameters that tells each pin how to operate and by extension, what controls to expose for those pins. It really is quite clever.

Mind you, I didn’t know any of this. I just knew that, once I got my bulb back on WiFi, it still didn’t work and that my other two working bulbs had full menus and under Configure Module, they had “CloudFree LBC” as the first choice and that was not even on the list in this bulb.

Google helped less than I would have hoped, but looking at CloudFree’s website helped a bit. On the description page for the bulb was some info that I would think would not normally be in the *sales* info for a smart bulb:

Of course, by itself, that doesn’t help, but it lead me down the right path. I remembered this screen when exploring the menus on my subfunctional bulb:

The pulldowns have various functions, such as Button, Switch, Rotary, PWM, etc.

I figured that I could duplicate the settings from one of my working bulbs and get a long ways towards restoring the functionality.

Now, in a bit of storytelling license, I didn’t show you the whole page, partly because the problem is already solved, but this page is called “Template Parameters” and it has the template name “CloudFree LBC”, which is the missing module name from the earlier mentioned list. From here, it is easy enough to duplicate a template, but it turns out that there is an even easier place, under Configure Other.

The single line in “Template” is a comma delimited list of the parameters from the “Configure Template” page. One copy from a working bulb, one paste here, one restart and suddenly, “CloudFree LBC” is once again an option. Another restart and the bulb is working again, just like that.

To be clear, Tasmota does ALL the heavy lifting here. Once Tasmota knows a port is PWM, it knows to give the main screen a slider to control it. The PWM parameters tells it the GPIO pin is a member of a 5 channel RGBCCT group, and which member, with channels for red, blue & green and two white channels for adjusting color temperature in white. Tasmota builds the main screen with RGB color, white color temperature and separate brightness controls accordingly. I do wish the white brightness was adjacent to the color temperature slider like the RGB brightness is next to the RGB color, but oh well.

Looking back at the CloudFree bulb sales page, red, green and blue are on GPIO 4, 12 & 14 respectively. Cool white is on GPIO 5 and warm white is GPIO 13, so those are 4 & 5 respectively in Tasmota.

I already like Tasmota for how easy it was to configure these bulbs and some switched power monitoring outlets I also got from CloudFree, but this shallow little dive into the inner workings lead me to appreciate it even more.

Flying Dog Fab

What I am making is not particularly innovative, but I am combining elements I have seen only in separate devices. I’ll be less opaque:

In various competitive shooting sports, there are ways to activate a moving target or other device downrange at some point in the course of fire. Sometimes the competitor just pulls a cord, but there are several devices available from different suppliers to accomplish this automatically, usually by strictly mechanical means. One common example is the Pressure Plate Target Activator from MGM Targets. Operation is simple and reliable; pull the rod out and rotate the trigger flag to the set position and gently close the cover over the flag. When the competitor steps on the plate, it trips the trigger and one or more springs yanks one or more rods. The rods are typically connected to cords/cables/strings that actually activate the moving target downrange.

I personally have only seen devices that trip when they are stepped ON but I have heard of units of a similar but obviously different design which trip when the competitor steps OFF of the plate. I think it would take a significantly more complex design for one device to do both.

I have also seen devices where the cord yanking is triggered remotely by an electrical solenoid. Such devices are frequently activated by something other than stepping on or off a plate, such as requiring the r a competitor to press and hold a switch. When they move and thus release the switch, it triggers the cord yanking device wherever it is. A great example was at the 2022 IDPA National Championship match. In this video, the competitor’s hand is holding down a switch. When the timer beeps and they release the switch, a timer relay somewhere would delay a couple of seconds then fire a solenoid to release a disappearing target.

Sadly, the moving cardboard target against the sandy soil is almost invisible to the camera. This video shows the target somewhat better.

The downrange activator works like this. This was the actual spare unit for the stage shown in the videos above.

Once activation is electric rather than purely mechanical, now it’s just a matter of wiring and switches to change between step on or step off, tripping a local or remote activator, triggering it by some other device or any combination of these. This is my contribution to the art.

I acquired two devices to test the activation, an open frame solenoid rated at 25 Newtons. That translates to about 5.6 pounds of pull, but solenoids are somewhat tweaky about exactly where in the travel of the plunger you can expect full pulling power. The specific units I got are no longer in stock, but this similar unit would probably be more suitable anyway.

Car door lock actuators seem like a great match. They are actually geared motors pulling or pushing with roughly the same force throughout their travel. I got a set of four for $18, vs the solenoids, which were $14 each. The lock actuator is slightly slower than the straight solenoid, but not enough to be significant.

There are two trigger switch options that seem largely interchangeable, depending on how one designs the step platform. One would be a momentary pushbutton switch. If mounted sensibly, it could be protected from rough treatment such as stomping the plate and they are available in a variety of forms and wiring options. However, before I thought about that, I found that I like the roller lever concept and I got 4 of them that are designed as limit sensing switches for industrial equipment. They are dust sealed and potentially water sealed, both of which could be important for a device that is sure to see service in the dirt and mud and rain at a match. Interestingly, this switch is not a double pole single throw switch, but rather it has separate normally open and normally closed contacts. This slightly clarifies the wiring by providing separate step-on and step-off contacts. If it were a typical DPST switch, however, it would not make any operational difference.

My design always included a timer relay to limit how long power is applied to the actuator. The electrical bits could be tripped by a simple switch closure, but most scenarios would leave the actuator powered for most of the entire time between competitors. Solenoids and motors get hot and fail under such conditions, plus you are wasting what is sure to be battery power. I got a multifunction relay, but the mode that works for this is called One Shot. Power is applied and the actuator immediately activates. After a programmable delay, less than a second typically, the output turns off and releases the actuator. It stays in this state until power is removed (by resetting the sensing switch) and it’s ready to fire again.

In this short video, I have wired it up for testing on the bench. The switch is configured for the step off mode:

Since this test, I have added a toggle switch to select step-on or step-off mode for testing and have listed the elements that I intend to include:

  • Power Switch
  • Two fuses
  • Trigger Switch: Local or Remote
  • Remote Trigger Contact or Voltage
  • Remote Trigger Contact Polarity Switch: Normally Open or Normally Closed
  • Activator Switch: Local or Remote
  • Remote Activator Mode Switch: 12V or Dry Contacts
  • Remote Trigger jack
  • Remote Activator jack

I have a tentative diagram that was drawn before this list. It is missing a lot of details, but it has many of the components:

The free online CAD I used to whip this out wasn’t super flexible. For example, all the switches are oriented the same way and being able to flip it over could make big diffence in the layout. Similarly, although conceptually, the timer relay can be represented as a standard relay, especially in the mode I am using, other modes would require constant 12V supply connection. Lucky me! There are better circuit CAD applications, especially those provided by printed circuit board providers. More on that later.

The switches I have chosen for most of the switches are DPDT toggle switches that have a center off position which serves to disable the action it switches. These specific switches were chosen because they are physically large and presumed to be fairly resistant to abuse by the mostly general public who might be working with them.

The electric bit is all but completed in design, but a big part of this thing is the physical platform itself. Most of the existing designs are fabricated from various sizes of steel angle for two basically concentric frames and generally some kind of plate or expanded metal for the stepping surface. The top plate is generally on the larger frame and they are joined by hinges, sometimes commercial but usually also fabricated.

I have spent way too much for prototype materials, mostly because I could not find a decent opportunity to go to local a steel supplier and ordered material online. Steel plates are heavy and steel angle is supplied in lengths and is heavy, characteristics that substantially increase shipping costs. The steel was about $80, shipping about $50. A local supplier will be significantly less and there will be no shipping.

My plan is for the step plate to be 18 x 18 inches outside dimensions the bottom frame to be enough smaller to fit the step plate well. I am expecting it to be 17 to 17.5 inside dimensions.

I cut my 72 inches of 3/4″ x 3/4″ steel angle into 18 inch pieces with mitered corners. As 18 goes into 72 exactly 4 times (minus about 5/16″ total saw kerf), it’s just barely enough for the top, and in fact, the 18 x 18 tread plate is slightly larger than the frame pieces and will need to be trimmed to fit. Technically, it will be slightly rectangular rather than square, but only by about 1/8″.

Since the frame will need to be a little smaller anyway, the 72″ length of 2″ x 2″ steel angle will fit slightly better, though as these will be outside corners, I would need more than a foot more material to cut proper miters. This will not be a problem with the version 2 prototype or production, but for the prototype, I will need to make square cuts instead of miter cuts and probably will want to fill the outside corners.

A coping joint could be easier than a miter. This image is of an inside corner, but illustrates cutting a cope in material to be joined.

Once the upper and lower frame agree on size, I will need to hinge them together appropriately

In the interior of the frame, I will need to supply various surfaces for mounting components. These substructures will also help reinforce the frame and keep it square.

Specifically, I need a place for the battery, a place to mount the trigger switch, the timer relay and the actuator assembly, including the rod and spring. Finally, I need a panel appropriate for all the configuration switches and the external connection jacks.

Once I have a working and tested prototype that I can take dimensions from, streamlining for production should be exciting. If there is ever a chance for these things to be profitable, it is going to have to cost less money and time to build each one. This is likely to be an iterative process, where doing one thing at less cost is likely to require a change in some other part of the design, which may itself affect cost again.

The most effective cost cutting method would be to buy my components in the most cost effective manner as possible. Note I did not say as cheaply as possible. My electrical components thus far have all been sourced from Amazon because it’s really easy to find stuff and I don’t have to go anywhere to get it. I will likely be able to weight the differences between cost and form factor and find entirely suitable components that cost less, especially in some quantity.

Similarly, once the frame size and components are determined, I may be able to design and order CNC plasma or laser cut parts. The cost savings for such parts will depend on dramatically decreasing the time required to assemble the frames. Using steel shop primatives like steel angle and rolled plate means lots of measuring and cutting of raw materials, preparing them for welding, welding them together, cleaning up the welds then finally applying a finish. With CNC cut parts, the pieces can fit together and require a handful of tack and stitch welds, taking far less time to complete. Laser cut parts will require minimal preparation, but plasma cut parts might be enough cheaper to offset that. With either, I can use a minimum amount of thinner material, converting less raw material into waste and eventually saving shipping costs.

So, I will probably do that.

Azbilt

Here is the home network as it currently sits, with Ubiquiti switches and APs:

That little box labeled “WiFi Devices” accounts for 50+ devices now. I have partially converted the things that should be on the IoT VLAN over, but I just haven’t done all of them yet.

Saucer Attack!

I was responding to a post on a forum about pfSense and Ubiquiti and how they get along (very well, thank you) and it occurred to me that I left part of the story hanging.

When last we left our heroes, I had kinda iffy WiFi coverage in the house with the new gear, compared to the old gear, but I had all the desired VLANs working. The solution, or at least the obvious solution, was to further finance the purchase of more Bentleys for Robert Pera by upgrading my APs.

As you may (or may not) recall, one problem I had was that stationary devices in the house would suddenly feel the need to roam and managed to connect to the AP out in workshop. The workshop was so distant that shortly they would roam off it and the only other option was back to the AP in the house again. Vicious cycle ensues, cat and dogs, etc.

Well, the new APs arrived. I initially connected and tested by laying them about on desktops, but quickly got serious and ran wire for the main one to be deployed in the kitchen ceiling. The whole WiFi thing in the house got much better.

It is not without the occasional mystery, however. I have an apparently not terribly smart WiFi device that is the intermediate display panel for my Accurite weather station. The suite of weather sensors outside communicates via a 433MHz signal to the display panel, which in turn connects to my LAN via WiFi and kicks the data out to WeatherUnderground. This WiFi device is literally 15 feet line of sight, with no obstacles, from the kitchen AP. As I type this, the display panel is within reach of my left arm and the AP is two steps away. Consequently, this stupid display panel will connect only to the hallway AP on the other side of the house and ONLY that AP. I have tried every conceivable way to reset the display panel and the APs. The only combination that will work is if the hallway AP is online and accepting the Accurite panel. Nothing seems to make it forget the hallway AP and connect to the much closer kitchen AP.