I made a thing to reset my modem.

Duck Tape Optional

CenturyLink can’t seem to stay online without frequent manual resets, so I made a thing out of other things that I got from the internet. Writing the code, soldering on some pins, and wiring up an intercept to the relay took about 3 hours, maybe 4 if you count the time I took sharing the code on github etc. It only switches the 12v DC so it’s pretty safe. Arduino sketch available via gitlab. It’s quite primitive but, unlike the commercially available WifiResetPlug, it works with my configuration, and you have all of the source code to inspect for nefarious intentions.

Still, SO MUCH better than Comcast

My CenturyLink modem loses its connection at least twice a week, and does not reconnect until I go downstairs and turn it off and on. While I appreciate the additional exercise in my daily routine, sometimes it disconnects two or three times in a row, or while I’m in the middle of a skype call.

There are commercial products that address this issue, but they don’t seem to help. I bought a WifiResetPlug, which should fix the problem. While it does seem to be working as designed, it never resets the connection on my network. I can unplug the DSL line and it does nothing. I assume this is because my router responds to all requests when the net is down with its magical “autoconfigure” screen. Which can not be disabled, of course. So that didn’t work.

Even if it worked, how can I trust it?

And, I don’t want any unnecessary devices on my home network connected to the internet 24/7. What, your house is full of IoT light bulbs? And you have a cloud-connected thermostat that tracks what room you’re in at what time of day 24/7? And it also knows when you’re >30 minutes away from home, and all the valuables in your house are unattended, and it’s connected to some third-party web service that is not audited or regulated? OK then, that’s your decision I guess. I don’t want that.

And at some point I realized it would be actually faster to make my own reset device from scratch than to keep purchasing third party devices. I had, on my desk, an ESP8266-based Arduino device (D1 Mini clone) and it has wifi, a really simple programming interface, and there’s an off-the-shelf “shield” board with a relay. I don’t even have to figure out which pins to wire up. And, my flaky CenturyLink modem uses a 5.5×2.1mm power connector, the same used by BOSS stompbox pedals. I have a box of those from my pedal experiments. The only thing I don’t already have on hand is the relay. It’s a sign!

So, within a week, and about 3 hours of actual work later, it was done.

Update (It works great!)

Update? I never even posted this, it’s still a draft. In any case, it works beautifully, and has reset my modem several times during the recent precipitation. I updated the code and now there are stats. It’s also smarter about temporary outages, and servers up a tiny web page showing uptime stats (all in seconds at the moment).

No resets yet!


Leave a Reply

You must be logged in to post a comment.