{"id":2421,"date":"2017-05-23T11:09:47","date_gmt":"2017-05-23T17:09:47","guid":{"rendered":"http:\/\/162.243.68.163\/?p=2421"},"modified":"2018-08-07T11:21:13","modified_gmt":"2018-08-07T17:21:13","slug":"i-made-a-thing-to-reset-my-modem","status":"publish","type":"post","link":"https:\/\/tekhedd.com\/?p=2421","title":{"rendered":"I made a thing to reset my modem."},"content":{"rendered":"<div id=\"attachment_2422\" style=\"width: 310px\" class=\"wp-caption alignright\"><a href=\"http:\/\/162.243.68.163\/wp-content\/uploads\/IMG_20170507_1218481-e1494950868860.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2422\" class=\"size-medium wp-image-2422\" src=\"http:\/\/162.243.68.163\/wp-content\/uploads\/IMG_20170507_1218481-e1494950841837-300x241.jpg\" alt=\"\" width=\"300\" height=\"241\" \/><\/a><p id=\"caption-attachment-2422\" class=\"wp-caption-text\">Duck Tape Optional<\/p><\/div>\n<p>CenturyLink can&#8217;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&#8217;s pretty safe. <a href=\"https:\/\/gitlab.com\/tekhedd\/ResetFlake\">Arduino sketch\u00a0available via gitlab<\/a>. It&#8217;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.<\/p>\n<h3>Still, SO MUCH better than Comcast<\/h3>\n<p>My CenturyLink modem loses its connection at least twice a week, and does not reconnect until\u00a0I go downstairs and\u00a0turn 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&#8217;m\u00a0in the middle of a skype call.<\/p>\n<p>There are commercial products that address this issue, but they don&#8217;t seem to help. I bought a WifiResetPlug, which should fix the problem.\u00a0While it\u00a0does seem to be working as designed, it never resets the connection on <em>my<\/em> network. I can unplug the DSL line and it does nothing. I assume this is because my\u00a0router responds to all requests when the net is down with its magical &#8220;autoconfigure&#8221; screen. Which can not be disabled, of course. So that didn&#8217;t work.<\/p>\n<h3>Even if it worked, how can I\u00a0trust it?<\/h3>\n<p>And, I don&#8217;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&#8217;re in at what time of day 24\/7? And it also knows when you&#8217;re &gt;30 minutes away from home, and all the valuables in your house are unattended, and it&#8217;s connected to some third-party web service that is not audited or regulated? OK then, that&#8217;s your decision I guess. I don&#8217;t want that.<\/p>\n<p>And at some point I realized it would be actually <em>faster<\/em>\u00a0to make my own reset device from scratch than to keep purchasing third party devices. I had, on my desk, an ESP8266-based Arduino device\u00a0(D1 Mini clone) and it has wifi, a really simple programming interface, and there&#8217;s an off-the-shelf &#8220;shield&#8221; board with a relay. I don&#8217;t even have to figure out which pins to wire up. And, my flaky CenturyLink modem uses a 5.5&#215;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&#8217;t already have on hand is the relay. It&#8217;s a sign!<\/p>\n<p>So, within a week, and about 3 hours of actual work later,\u00a0it was done.<\/p>\n<h3>Update (It works great!)<\/h3>\n<p>Update?\u00a0I never even posted this, it&#8217;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&#8217;s also smarter about temporary outages, and servers up a tiny web page showing uptime stats (all in seconds at the moment).<\/p>\n<div id=\"attachment_2428\" style=\"width: 634px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/162.243.68.163\/wp-content\/uploads\/reset-stats.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2428\" class=\"wp-image-2428 size-full\" src=\"http:\/\/162.243.68.163\/wp-content\/uploads\/reset-stats.png\" alt=\"\" width=\"624\" height=\"292\" srcset=\"https:\/\/tekhedd.com\/wp-content\/uploads\/reset-stats.png 624w, https:\/\/tekhedd.com\/wp-content\/uploads\/reset-stats-300x140.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/a><p id=\"caption-attachment-2428\" class=\"wp-caption-text\">No resets yet!<\/p><\/div>\n<p>Whee.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CenturyLink can&#8217;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 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2421","post","type-post","status-publish","format-standard","hentry","category-other"],"_links":{"self":[{"href":"https:\/\/tekhedd.com\/index.php?rest_route=\/wp\/v2\/posts\/2421","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tekhedd.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tekhedd.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tekhedd.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/tekhedd.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2421"}],"version-history":[{"count":12,"href":"https:\/\/tekhedd.com\/index.php?rest_route=\/wp\/v2\/posts\/2421\/revisions"}],"predecessor-version":[{"id":2540,"href":"https:\/\/tekhedd.com\/index.php?rest_route=\/wp\/v2\/posts\/2421\/revisions\/2540"}],"wp:attachment":[{"href":"https:\/\/tekhedd.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2421"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tekhedd.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2421"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tekhedd.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2421"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}