<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hardware on Andrew's Memory Blog</title><link>https://andrewmemory.acornwall.net/tags/hardware/</link><description>Recent content in Hardware on Andrew's Memory Blog</description><generator>Hugo -- gohugo.io</generator><image><url>https://andrewmemory.acornwall.net/img/rss_image.png</url><title>Hardware on Andrew's Memory Blog</title><link>https://andrewmemory.acornwall.net/</link></image><language>en</language><managingEditor>andrewmemoryblog@gmail.com (Andrew's Memory Blog)</managingEditor><webMaster>andrewmemoryblog@gmail.com (Andrew's Memory Blog)</webMaster><copyright>Copyright 2009--2025</copyright><lastBuildDate>Sun, 05 Apr 2020 21:04:06 -0700</lastBuildDate><atom:link href="https://andrewmemory.acornwall.net/tags/hardware/index.xml" rel="self" type="application/rss+xml"/><item><title>Fixing a busy CP210x serial device on Ubuntu</title><link>https://andrewmemory.acornwall.net/blog/2020-04-05-fixing-a-busy-cp210x-serial-device-on-ubuntu/</link><pubDate>Sun, 05 Apr 2020 21:04:06 -0700</pubDate><author>andrewmemoryblog@gmail.com (Andrew's Memory Blog)</author><guid>https://andrewmemory.acornwall.net/blog/2020-04-05-fixing-a-busy-cp210x-serial-device-on-ubuntu/</guid><description>&lt;p&gt;I had the opportunity to reorganize my local machines. As part of that, I wanted to plug my firewall&amp;rsquo;s serial port into USB serial and pop that into my server. I have a &lt;a href="https://www.pcengines.ch/usbcom1a.htm" target="_blank" rel="noreferrer"&gt;CP2104 serial device&lt;/a&gt; that I bought with my &lt;a href="https://www.pcengines.ch/apu2.htm" target="_blank" rel="noreferrer"&gt;PC Engines apu2&lt;/a&gt; which I use for a firewall.&lt;/p&gt;
&lt;p&gt;The USB serial device worked fine when plugged into my Windows 8 laptop, but I want my server to be able to connect to my firewall even when the network is down. Because the apu2 is headless, it&amp;rsquo;s nice to have something that&amp;rsquo;s plugged into a monitor when I need to fix things.&lt;/p&gt;
&lt;p&gt;I plugged the USB serial port in, and tried to connect to my firewall with minicom. I got this instead:&lt;/p&gt;
&lt;figure class="highlight"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-" data-lang=""&gt;$ minicom
minicom: cannot open /dev/ttyUSB0: Device or resource busy&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;p&gt;So, time to look at who has /dev/ttyUSB0 open:&lt;/p&gt;
&lt;figure class="highlight"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-" data-lang=""&gt;$ sudo lsof | grep ttyUSB0
gpsd 416 root 3u CHR 188,0 0t0 176 /dev/ttyUSB0&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;p&gt;Ok, why is gpsd holding /dev/ttyUSB0 open? It&amp;rsquo;s true I have a GPS attached to my server, but that runs as /dev/ttyACM0 and has nothing to do with /dev/ttyUSB0. Hmm&amp;hellip; time to search and find this in the gpsd FAQ: &lt;a href="https://gpsd.gitlab.io/gpsd/faq.html#conflict" target="_blank" rel="noreferrer"&gt;Why does GPSD open non-GPS USB devices?&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;That made me suspicious. See, gpsd is trying to be too friendly - and to do that, it opens a whole bunch of possibly GPS devices even if they&amp;rsquo;re not GPS devices! Could that be my problem?&lt;/p&gt;
&lt;figure class="highlight"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-" data-lang=""&gt;$ lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 003: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 040: ID 1546:01a7 U-Blox AG
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;p&gt;Hmm&amp;hellip; let&amp;rsquo;s take a peek in /lib/udev/rules.d/60-gpsd.rules:&lt;/p&gt;
&lt;figure class="highlight"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-" data-lang=""&gt;... blah blah blah...
# Cygnal Integrated Products, Inc. CP210x Composite Device (Used by Holux m241 and Wintec grays2 wbt-201) [linux module: cp210x]
ATTRS{idVendor}==&amp;#34;10c4&amp;#34;, ATTRS{idProduct}==&amp;#34;ea60&amp;#34;, SYMLINK&amp;#43;=&amp;#34;gps%n&amp;#34;, TAG&amp;#43;=&amp;#34;systemd&amp;#34;, ENV{SYSTEMD_WANTS}=&amp;#34;gpsdctl@%k.service&amp;#34;
... more blah...&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;p&gt;So in an effort to detect the Holux m241 and Wintec grays2 wbt-201, it&amp;rsquo;s matching the vendor and product ID of my CP2104 serial device as well! Luckily, I don&amp;rsquo;t have any of those GPS devices, so a quick snip:&lt;/p&gt;
&lt;figure class="highlight"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-" data-lang=""&gt;# Cygnal Integrated Products, Inc. CP210x Composite Device (Used by Holux m241 and Wintec grays2 wbt-201) [linux module: cp210x]
# commented out because it interferes with Andrew&amp;#39;s PC Engines 2104 USB serial cable
#ATTRS{idVendor}==&amp;#34;10c4&amp;#34;, ATTRS{idProduct}==&amp;#34;ea60&amp;#34;, SYMLINK&amp;#43;=&amp;#34;gps%n&amp;#34;, TAG&amp;#43;=&amp;#34;systemd&amp;#34;, ENV{SYSTEMD_WANTS}=&amp;#34;gpsdctl@%k.service&amp;#34;&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;p&gt;was all it took. Now my USB serial device shows up as a serial device, and is not held open by a GPS daemon.&lt;/p&gt;
&lt;p&gt;I have to disagree with the GPSD FAQ&amp;rsquo;s statement, &amp;ldquo;It&amp;rsquo;s not a problem we can solve with clever programming, the devices simply don&amp;rsquo;t yield enough information about themselves to avoid conflicts.&amp;rdquo; Err, no&amp;hellip; clever programming would have the user run through an install procedure which involved plugging the device in, and detecting the device. Then they could update the udev rules so that only the device that a user owned was stolen by gpsd, and not all serial devices on the planet that happened to match a vendor/product ID that they knew about.&lt;/p&gt;</description></item><item><title>Adding ATtiny support to Arduino IDE 1.6.1</title><link>https://andrewmemory.acornwall.net/blog/2015-03-22-adding-attiny-support-to-arduino-ide-1-6-1/</link><pubDate>Sun, 22 Mar 2015 19:28:04 -0700</pubDate><author>andrewmemoryblog@gmail.com (Andrew's Memory Blog)</author><guid>https://andrewmemory.acornwall.net/blog/2015-03-22-adding-attiny-support-to-arduino-ide-1-6-1/</guid><description>&lt;p&gt;I recently upgrade from the 1.0.5 version of the Arduino IDE to 1.6.1. Things aren&amp;rsquo;t completely smooth - in particular, I was using &lt;a href="https://code.google.com/p/arduino-tiny/" target="_blank" rel="noreferrer"&gt;Coding Badly&amp;rsquo;s cores&lt;/a&gt; for ATtiny85, ATtiny84 and ATtiny2313.&lt;/p&gt;
&lt;p&gt;Unfortunately, those haven&amp;rsquo;t yet been updated for the new layout specified in the 1.6.x IDE. So instead I switched for now at least to the &lt;a href="https://github.com/damellis/attiny/" target="_blank" rel="noreferrer"&gt;damellis cores&lt;/a&gt; (which support ATtiny85 and ATtiny84, but not ATtiny2313/4313).&lt;/p&gt;
&lt;p&gt;Installing this is a matter of unzipping it in the sketchbook/hardware folder (on my Windows box in C:\Users\{my user}\Documents\Arduino).&lt;/p&gt;
&lt;p&gt;In Windows cmd shell: &lt;code&gt;cd &amp;quot;C:\Users\{my user}\Documents\Arduino&amp;quot; mkdir hardware unzip c:\{whatever}\attiny-ide-1.6.x.zip cd hardware move ..\attiny-ide-1.6.x\attiny . cd .. rmdir attiny-ide-1.6.x&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;At some point in the future either the Coding Badly cores will support IDE 1.6 (hopefully with the nice variants structure that the damellis cores use) or the damellis cores will do ATtinyX313s.&lt;/p&gt;</description></item><item><title>Trying to resurrect a dead Linksys WRT54GS router</title><link>https://andrewmemory.acornwall.net/blog/2014-09-01-trying-to-resurrect-a-dead-linksys-wrt54gs-router/</link><pubDate>Mon, 01 Sep 2014 01:47:09 -0700</pubDate><author>andrewmemoryblog@gmail.com (Andrew's Memory Blog)</author><guid>https://andrewmemory.acornwall.net/blog/2014-09-01-trying-to-resurrect-a-dead-linksys-wrt54gs-router/</guid><description>&lt;p&gt;I recently went through heroic efforts to bring a dead Linksys WRT54GS router back to life. These routers are great for &lt;a href="http://www.broadband-hamnet.org/%20" target="_blank" rel="noreferrer"&gt;Broadband Hamnet&lt;/a&gt; so I really wanted to get it working, but no dice.&lt;/p&gt;
&lt;p&gt;But I don&amp;rsquo;t want to forget what I did, so I&amp;rsquo;m documenting it here.&lt;/p&gt;
&lt;h2 class="relative group"&gt;Fix the hardware
&lt;div id="fix-the-hardware" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#fix-the-hardware" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;The first problem was that the router made a strange buzzing sound. I &lt;a href="http://www.skifactz.com/wifi/disassemble_WRT54G.htm" target="_blank" rel="noreferrer"&gt;opened the router&lt;/a&gt; and discovered that LX2 in particular, but also LX1 (two chokes at the power supply input) were actually vibrating when I put my finger on them. In addition, the capacitors near it were hot to the touch.&lt;/p&gt;
&lt;p&gt;This was described &lt;a href="http://hardforum.com/showthread.php?t=1591910" target="_blank" rel="noreferrer"&gt;in this post as an electrolytic capacitor problem&lt;/a&gt;. Sure enough, when I replaced CX2 with a new 220 uF 25 V electrolytic capacitor, the device settled down. At this point, the power LED was flashing (a bad sign) but at least it was now flashing at a regular speed. While I was soldering, I took the time to add a 12-pin header to the &lt;a href="http://www.tiaowiki.com/w/Debrick_Routers_Using_JTAG_Cable#Locate_the_JTAG_Pins.2FPads_on_the_Router" target="_blank" rel="noreferrer"&gt;router&amp;rsquo;s JTAG port&lt;/a&gt;.&lt;/p&gt;
&lt;h2 class="relative group"&gt;Reflash the Firmware
&lt;div id="reflash-the-firmware" class="anchor"&gt;&lt;/div&gt;
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
&lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#reflash-the-firmware" aria-label="Anchor"&gt;#&lt;/a&gt;
&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;Following the &lt;a href="http://www.dd-wrt.com/phpBB2/viewtopic.php?t=51486" target="_blank" rel="noreferrer"&gt;unbrick article here&lt;/a&gt;, I wasn&amp;rsquo;t able to ping the router. No matter what, I&amp;rsquo;d get &amp;ldquo;destination host unreachable&amp;rdquo; - even though my IP was the same as the router, ostensibly. So I figured flashing was required.&lt;/p&gt;
&lt;p&gt;I started out by trying to get a SEGGER J-Link talking to the JTAG port. I used the &lt;a href="http://www.jtagtest.com/pinouts/wrt54" target="_blank" rel="noreferrer"&gt;pinouts for the WRT54G described here&lt;/a&gt; for the WRT54GS, and the &lt;a href="http://www.segger.com/interface-description.html" target="_blank" rel="noreferrer"&gt;pinouts for the J-Link described here&lt;/a&gt;. Note that RESET on the J-Link is nSRST on the WRT54GS.&lt;/p&gt;
&lt;p&gt;After I&amp;rsquo;d done that, I wasn&amp;rsquo;t able to get the J-Link talking. It looks as if the J-Link software wants to talk only to devices it knows about - or at least, that&amp;rsquo;s all I could figure out about it. Trying to set it to MIPS mode to impersonate EJTAG didn&amp;rsquo;t yield any success either.&lt;/p&gt;
&lt;p&gt;So it was time for a different option. I didn&amp;rsquo;t have a parallel port handy, but I did have a Raspberry Pi. And a wonderful individual has taken the time to &lt;a href="https://github.com/oxplot/tjtag-pi" target="_blank" rel="noreferrer"&gt;port tjtag to the Raspberry Pi&lt;/a&gt;. I cloned the Git repo to my Pi and built it. I had to use:&lt;/p&gt;
&lt;figure class="highlight"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-" data-lang=""&gt;git clone git://github.com/oxplot/tjtag-pi.git&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;p&gt;to grab the Git repo, since https wants an auth key and I don&amp;rsquo;t have one. After that I followed the &lt;a href="https://github.com/oxplot/tjtag-pi" target="_blank" rel="noreferrer"&gt;Setup instructions&lt;/a&gt; and got tjtag built.&lt;/p&gt;
&lt;p&gt;I connected things up as described in the wiring diagram, and had success! I was able to probe the router. (I had to run sudo ./tjtag -probeonly instead of just ./tjtag.)&lt;/p&gt;
&lt;p&gt;Then I went off to the &lt;a href="http://www.tiaowiki.com/w/Debrick_Routers_Using_JTAG_Cable#Debrick_it.21" target="_blank" rel="noreferrer"&gt;tjtag instructions here&lt;/a&gt;. The first few times I did:&lt;/p&gt;
&lt;figure class="highlight"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-" data-lang=""&gt;sudo ./tjtag -backup:cfe&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;p&gt;I got different results. It appears that tjtag on the Pi spends so much time sending output to the console that it messes up its timing. So I redirected the output to /dev/null, and after that I got consistent backups.&lt;/p&gt;
&lt;p&gt;Once I had an nvram backup, I tried erasing the nvram:&lt;/p&gt;
&lt;figure class="highlight"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-" data-lang=""&gt;sudo ./tjtag -erase:nvram&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;p&gt;This worked, but didn&amp;rsquo;t solve my problem. So I thought I might have had a corrupted CFE. I located the &lt;a href="http://mirror.debrick.nl/index.php?dir=cfe%20collection%20project/Linksys/G/WRT54GS/&amp;amp;sort=size&amp;amp;sort_mode=dhttp://" target="_blank" rel="noreferrer"&gt;CFE for my router here&lt;/a&gt; and modified it to have my IP addresses using &lt;a href="http://www.bitsum.com/files/imgtool_nvram.zip" target="_blank" rel="noreferrer"&gt;imgtool_nvram&lt;/a&gt;. I used the following command:&lt;/p&gt;
&lt;figure class="highlight"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-" data-lang=""&gt;imgtool_nvram.exe wrt54gs1.0-CFE.
BIN et0macaddr=00:11:22:33:44:55 il0macaddr=00:11:22:33:44:56&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;p&gt;(substituting my real MAC address and one higher than it.) Then I dumped that back on the Pi as CFE.BIN, and did:&lt;/p&gt;
&lt;figure class="highlight"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-" data-lang=""&gt;sudo ./tjtag -flash:cfe &amp;gt; /tmp/out&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;p&gt;That worked, but still no joy in Mudville after I did the flash. No matter what, when I pinged I got destination unreachable. I wondered if it was Windows messing with me, so I booted to Kali to see what happened there. Still no dice.&lt;/p&gt;
&lt;p&gt;Finally, I thought it might be a bad kernel, so I nuked it:&lt;/p&gt;
&lt;figure class="highlight"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-" data-lang=""&gt;sudo ./tjtag -erase:kernel&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;p&gt;Even with that, the router&amp;rsquo;s still not responding. Other than re-reflashing the CFE on the assumption that the bad kernel corrupted it, I&amp;rsquo;m out of ideas.&lt;/p&gt;
&lt;p&gt;Drat, I thought I had it when I saw the instructions about &lt;a href="http://www.dd-wrt.com/wiki/index.php/Recover_from_a_Bad_Flash" target="_blank" rel="noreferrer"&gt;setting the address with arp&lt;/a&gt;. (arp -s 192.168.1.1 aa-bb-cc-dd-ee-ff if you&amp;rsquo;re on Windows.) But even when I did that (using the MAC address that I flashed), I still had nothing. I even stuffed Wireshark on the end to listen for any packets. He&amp;rsquo;s dead, Jim.&lt;/p&gt;</description></item><item><title>Hacking the APC Smart-UPS 1000</title><link>https://andrewmemory.acornwall.net/blog/2014-05-18-hacking-the-apc-smart-ups-1000/</link><pubDate>Sun, 18 May 2014 12:31:28 -0700</pubDate><author>andrewmemoryblog@gmail.com (Andrew's Memory Blog)</author><guid>https://andrewmemory.acornwall.net/blog/2014-05-18-hacking-the-apc-smart-ups-1000/</guid><description>&lt;p&gt;I have an old APC Smart-UPS 1000 (SU1000NET) that recently started giving me bad battery warning beeps. I&amp;rsquo;ve had that in the past, and replacing the battery has always solved it. This time it didn&amp;rsquo;t.&lt;/p&gt;
&lt;p&gt;First I read that sometimes the battery constant for these UPS devices can get confused. (I read that at: &lt;a href="http://www.conetrix.com/Blog/post/Manually-esetting-an-APC-Smart-UPS-battery-constant-after-new-battery-replacement.aspx%29" target="_blank" rel="noreferrer"&gt;http://www.conetrix.com/Blog/post/Manually-esetting-an-APC-Smart-UPS-battery-constant-after-new-battery-replacement.aspx)&lt;/a&gt;. So I did the reset procedure described there.&lt;/p&gt;
&lt;p&gt;A few things to keep in mind before you do this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You need an APC cable, not a plain serial cable. In my case I had one that I hooked up to an FTDI USB serial cable.&lt;/li&gt;
&lt;li&gt;The instructions from the site above aren&amp;rsquo;t exact - they make reference to pressing **1** but they really mean press 1&lt;/li&gt;
&lt;li&gt;There is no need to type any keys other than the ones specified. No returns, etc.&lt;/li&gt;
&lt;li&gt;The keys are case-sensitive. Y is not y.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So I hooked the cable up, connected a terminal at 2400/8/N/1 Xon and changed the value of the battery constant from 79 back up to A0, which I&amp;rsquo;d read was the correct value for the SU1000NET. Here are the keys I entered:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Y&lt;/strong&gt; &lt;em&gt;(you see SM)&lt;/em&gt; &lt;strong&gt;1&lt;/strong&gt; &lt;em&gt;(then wait 1 second)&lt;/em&gt; &lt;strong&gt;1&lt;/strong&gt; &lt;em&gt;(you see PROG)&lt;/em&gt; &lt;strong&gt;0&lt;/strong&gt; &lt;em&gt;(I saw 79)&lt;/em&gt; &lt;strong&gt;+++++++&lt;/strong&gt; &lt;em&gt;(and kept on pressing + slowly until I saw A0)&lt;/em&gt; &lt;strong&gt;R&lt;/strong&gt; &lt;em&gt;(you see BYE)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I pressed Y0R to see that it had been properly set. Then I pressed the self-test button and&amp;hellip; more beeps and another battery failure indication. Boo.&lt;/p&gt;
&lt;p&gt;So I figure something has gone awry with this UPS. I wanted to shut off the beeps at least. That led me to this wonderful site: &lt;a href="http://www.networkupstools.org/ups-protocols/apcsmart.html" target="_blank" rel="noreferrer"&gt;http://www.networkupstools.org/ups-protocols/apcsmart.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;That describes the entire PowerChute protocol. So I decided to turn off the weekly self-test. I did: &lt;strong&gt;Y&lt;/strong&gt; &lt;em&gt;(see SM)&lt;/em&gt; &lt;strong&gt;E&lt;/strong&gt; &lt;em&gt;(see 336)&lt;/em&gt; &lt;strong&gt;+&lt;/strong&gt; &lt;em&gt;(see OK)&lt;/em&gt; &lt;strong&gt;E&lt;/strong&gt; &lt;em&gt;(see 168)&lt;/em&gt; &lt;strong&gt;+&lt;/strong&gt; &lt;em&gt;(see OK)&lt;/em&gt; &lt;strong&gt;E&lt;/strong&gt; &lt;em&gt;(see ON)&lt;/em&gt; &lt;strong&gt;+&lt;/strong&gt; &lt;em&gt;(see OK)&lt;/em&gt; &lt;strong&gt;E&lt;/strong&gt; &lt;em&gt;(see OFF)&lt;/em&gt; &lt;strong&gt;R&lt;/strong&gt; &lt;em&gt;(see BYE)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Hopefully that will turn the annoying beeps at 3am off. In the meantime, my UPS still tells me that the new batteries are bad. But when it loses power, it still does the right thing&amp;hellip; so hopefully this will work.&lt;/p&gt;</description></item><item><title>Using the TinyLoadr to program ATtiny84s</title><link>https://andrewmemory.acornwall.net/blog/2013-11-27-using-the-tinyloadr-to-program-attiny84s/</link><pubDate>Wed, 27 Nov 2013 20:51:20 -0700</pubDate><author>andrewmemoryblog@gmail.com (Andrew's Memory Blog)</author><guid>https://andrewmemory.acornwall.net/blog/2013-11-27-using-the-tinyloadr-to-program-attiny84s/</guid><description>&lt;p&gt;I&amp;rsquo;ve been using the excellent &lt;a href="https://www.tindie.com/products/jeffmurchison/arduinoisp-deluxe-shield-kit/" target="_blank" rel="noreferrer"&gt;TinyLoadr Shield&lt;/a&gt; to program a bunch of ATtiny2313 chips I&amp;rsquo;ve got. Doing so was easy.&lt;/p&gt;
&lt;p&gt;But when I moved over to program ATtiny84s, I ran into a bunch of problems. First, I&amp;rsquo;d get an error when burning the bootloader:&lt;/p&gt;
&lt;figure class="highlight"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-" data-lang=""&gt;configuration file for part ATtiny84
avrdude: Yikes! Invalid device signature.&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;p&gt;This was because, although I&amp;rsquo;d switched all the switches on in the second bank (and off in the first and third banks), I&amp;rsquo;d neglected to move the three jumpers below them from ATtinyx313 to Other.&lt;/p&gt;
&lt;p&gt;Once I did that, I started getting different errors:&lt;/p&gt;
&lt;figure class="highlight"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-" data-lang=""&gt;avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x64
avrdude: stk500_cmd(): protocol error&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;p&gt;and&lt;/p&gt;
&lt;figure class="highlight"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-" data-lang=""&gt;avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x64
avrdude: stk500_cmd(): programmer is out of sync&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;p&gt;This is due to a defect in Arduino 1.0. Luckily, more information about the problem is here:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://code.google.com/p/arduino/issues/detail?id=661" target="_blank" rel="noreferrer"&gt;http://code.google.com/p/arduino/issues/detail?id=661&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The upshot: I went into c:\Program Files\Arduino\hardware\arduino\cores\arduino and edited HardwareSerial.cpp to have the following:&lt;/p&gt;
&lt;figure class="highlight"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-" data-lang=""&gt;#if (RAMEND &amp;lt; 1000)
#define SERIAL_BUFFER_SIZE 16
#else
// Was 64; changed to 128 for serial buffer overflow problem
// http://code.google.com/p/arduino/issues/detail?id=661
#define SERIAL_BUFFER_SIZE 128
#endif&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;p&gt;I then reburned ArduinoISP on my Uno, then plugged the TinyLoadr back in. After that, I was able to burn ATtiny84s with no problem.&lt;/p&gt;</description></item><item><title>Repairing a Samsung LN32A450</title><link>https://andrewmemory.acornwall.net/blog/2012-12-12-repairing-a-samsung-ln32a450/</link><pubDate>Wed, 12 Dec 2012 22:33:21 -0700</pubDate><author>andrewmemoryblog@gmail.com (Andrew's Memory Blog)</author><guid>https://andrewmemory.acornwall.net/blog/2012-12-12-repairing-a-samsung-ln32a450/</guid><description>&lt;p&gt;I own a Samsung LN32A450 TV set, which has been fairly good so far&amp;hellip; until last weekend, when it didn&amp;rsquo;t turn on. Instead, the power LED flashed steadily at about one flash every 500 ms.&lt;/p&gt;
&lt;p&gt;It seems that my TV set suffered from the capacitor plague. A bunch of the Samwha capacitors swelled up and were no longer to spec. I could order a replacement board (the board is &lt;a href="http://www.findparts4you.com/store/p/716-BN44-00214A-SMPS-Power-PCB-LCD-TV-Board.aspx" target="_blank" rel="noreferrer"&gt;BN44-00214A&lt;/a&gt; available from findparts4you.com). A little searching showed that others had successfully revived their power boards just by replacing the capacitors.&lt;/p&gt;
&lt;p&gt;First, I had to open the TV set. This involved removing 16 screws (all the same size) from the back. I discoverd I had to be careful with the ones marked &amp;ldquo;S&amp;rdquo; - those four also hold the TV stand in place, so I wanted to remove them last. Also, there&amp;rsquo;s a screw on the back panel below the &amp;ldquo;EX-Link&amp;rdquo; connector, and another one on the back underneath the A/V 2 inputs.&lt;/p&gt;
&lt;p&gt;Once I did that I could slide the back off (face down, since the support was unscrewed). The power board is the one in the middle. There are five connectors to disconnect from there: two at the upper left, one at the upper right, and two power connectors that go to the lower right. In my case they stayed in the right position once I removed them because there was tape holding them to the flat panel.&lt;/p&gt;
&lt;p&gt;After that, I removed 6 small screws that held the power board in. I didn&amp;rsquo;t need to remove any of the standoffs - they&amp;rsquo;re just there to push the board away from the flat panel.&lt;/p&gt;
&lt;p&gt;When I investigated the board, I could see the telltale swelling of capacitors that indicated problems. I saw problems with four capacitors:&lt;/p&gt;
&lt;p&gt;CB852 in the middle right of the board: 2200 uF 10V CW856 near the top left: 470 uF 25V CW858 right below CW856: 680 uF 25V CM868 right below CW858: 680 uF 35V&lt;/p&gt;
&lt;p&gt;Some people reported success with using Radio Shack replacement capacitors. I was a little nervous about that - these caps are all rated to 105 degrees C and have high ripple current tolerance, and I didn&amp;rsquo;t want to swap in something I&amp;rsquo;d just have to replace later. I ended up getting replacements from &lt;a href="http://www.digikey.com/" target="_blank" rel="noreferrer"&gt;Digi-Key&lt;/a&gt;. They have a minimum $25 order (otherwise they charge you $5 for handling). Luckily I had some other stuff to buy at the same time.&lt;/p&gt;
&lt;p&gt;I replaced them with the following:&lt;/p&gt;
&lt;p&gt;CB852: Panasonic EEU-FC1A222L (Digi-Key part P11189-ND) CW856: Panasonic EEU-FM1E471 (Digi-Key part P12388-ND) CW858: Panasonic EEU-FM1E681 (Digi-Key part P12390-ND) CM868: Panasonic EEU-FM1V681 (Digi-Key part P12417-ND)&lt;/p&gt;
&lt;p&gt;The replacement for CB852 was about 1 cm taller than the original part, and that made it the tallest part on the board. I was a little worried about that, but there seemed to be enough clearance that it didn&amp;rsquo;t cause a problem.&lt;/p&gt;
&lt;p&gt;These capacitors are electrolytic and have a polarity, so I had to replace them the same way &amp;lsquo;round that the originals were. Luckily, on my circuit board all the negative terminals were marked with a white semicircle underneath the capacitor.&lt;/p&gt;
&lt;p&gt;After that, I plugged the cables back into the board (not forgetting the single-pin green ground cable). Then I put the 6 screws back.&lt;/p&gt;
&lt;p&gt;Next I put the cover back on and put the 16 screws back in. I started with the base &amp;ldquo;S&amp;rdquo; screws, then the top three, then kind of haphazardly put the rest in the right places.&lt;/p&gt;
&lt;p&gt;Then I powered up. Success! The TV came on and was as good as it was before this happened.&lt;/p&gt;
&lt;p&gt;A few links I found useful: &lt;a href="http://forums.cnet.com/7723-13973_102-334836/samsung-ln32a450-died/" target="_blank" rel="noreferrer"&gt;forums.cnet.com/7723-13973_102-334836/samsung-ln32a450-died/&lt;/a&gt; &lt;a href="http://forums.cnet.com/7723-13973_102-401147/samsung-ln32a450-power-light-blinking-but-does-not-power-up/" target="_blank" rel="noreferrer"&gt;forums.cnet.com/7723-13973_102-401147/samsung-ln32a450-power-light-blinking-but-does-not-power-up/&lt;/a&gt; &lt;a href="http://forums.cnet.com/7723-13973_102-359389/samsung-lcd-tv-ln-t5265f-black-screen-diagnosis-help/" target="_blank" rel="noreferrer"&gt;forums.cnet.com/7723-13973_102-359389/samsung-lcd-tv-ln-t5265f-black-screen-diagnosis-help/&lt;/a&gt; &lt;a href="http://www.samsung.com/us/capacitorsettlement/" target="_blank" rel="noreferrer"&gt;www.samsung.com/us/capacitorsettlement/&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Maxtor Shared Storage II 320 G power supply</title><link>https://andrewmemory.acornwall.net/blog/2012-12-09-maxtor-shared-storage-ii-320-g-power-supply/</link><pubDate>Sun, 09 Dec 2012 13:29:39 -0700</pubDate><author>andrewmemoryblog@gmail.com (Andrew's Memory Blog)</author><guid>https://andrewmemory.acornwall.net/blog/2012-12-09-maxtor-shared-storage-ii-320-g-power-supply/</guid><description>&lt;p&gt;Since I have recently moved, I&amp;rsquo;ve discovered how much I hate devices that don&amp;rsquo;t clearly label their power supplies. All my wall warts got detached from their devices in the move, and I&amp;rsquo;m gradually re-unifying them.&lt;/p&gt;
&lt;p&gt;Today&amp;rsquo;s example: the Maxtor Shared Storage II 320 G external drive. It takes 12 volts DC, 3A, centre positive, and a brick I had from Goodwill with a 5.5mm outer barrel connector seemed to fit well.&lt;/p&gt;</description></item><item><title>Repairing a Dell Inspiron N4010</title><link>https://andrewmemory.acornwall.net/blog/2012-12-01-repairing-a-dell-inspiron-n4010/</link><pubDate>Sat, 01 Dec 2012 01:26:32 -0700</pubDate><author>andrewmemoryblog@gmail.com (Andrew's Memory Blog)</author><guid>https://andrewmemory.acornwall.net/blog/2012-12-01-repairing-a-dell-inspiron-n4010/</guid><description>&lt;p&gt;I recently had a friend bring me a Dell Inspiron N4010. The laptop wouldn&amp;rsquo;t boot up, and the friend wanted to get the data off the hard drive.&lt;/p&gt;
&lt;p&gt;I figured that would be a fairly easy task. Little did I know&amp;hellip;. I started by looking at Youtube videos about taking apart the N4010. Here&amp;rsquo;s the &lt;a href="http://www.youtube.com/watch?v=mtC7rFZ3z40" title="Start of the nightmare" target="_blank" rel="noreferrer"&gt;best Inspiron N4010 video&lt;/a&gt; - or rather, first in a series of three for over 30 minutes total time.&lt;/p&gt;
&lt;p&gt;Turns out, Dell in their infinite wisdom decided not to put a door on the case to allow access to the hard drive. Instead, you have to &lt;em&gt;remove the keyboard and motherboard&lt;/em&gt; to swap it out. This proves that Dell&amp;rsquo;s engineering department is willing to hire the insane.&lt;/p&gt;
&lt;p&gt;Luckily, the video showed disassembly as well as assembly. I knew my friend had taken the laptop to Best Buy a few weeks before it stopped working to put a new hard drive in. (And again after it stopped: that time the Geek Squad claimed &amp;ldquo;no fix was possible&amp;rdquo; because there were no BIOS beeps.) The video showed a stick-on plastic piece that wasn&amp;rsquo;t present (any more) on my friend&amp;rsquo;s laptop between the keyboard and the motherboard.&lt;/p&gt;
&lt;p&gt;With the laptop disassembled, I said &amp;ldquo;why not&amp;rdquo; and tried to boot. It came up. I connected the laptop up to the network and backed up the hard drive.&lt;/p&gt;
&lt;p&gt;The stick-on plastic piece appeared to keep the keyboard from shorting the motherboard. More of that Dell quality. I&amp;rsquo;m guessing the Geek Squad just tossed it. I fabricated a quick replacement from some polyester film I had hanging around. Who knows if it will last, but at least the machine boots now.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m really glad I did this. It made me 100% sure I would never buy a Dell laptop. Ever.&lt;/p&gt;</description></item><item><title>Final cleanup for the ALIX firewall</title><link>https://andrewmemory.acornwall.net/blog/2012-07-06-final-cleanup-for-the-alix-firewall/</link><pubDate>Fri, 06 Jul 2012 22:38:45 -0700</pubDate><author>andrewmemoryblog@gmail.com (Andrew's Memory Blog)</author><guid>https://andrewmemory.acornwall.net/blog/2012-07-06-final-cleanup-for-the-alix-firewall/</guid><description>&lt;p&gt;Finally, there are a few things that I either forgot to do or that make life easier.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Setting up localtime&lt;/strong&gt; By defaut, /etc/localtime is set to Alberta, where OpenBSD has its home. I need to set it to somewhere closer.&lt;/p&gt;
&lt;figure class="highlight"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-" data-lang=""&gt;rm /etc/localtime; ln -s /usr/share/zoneinfo/US/Mountain /etc/localtime&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;p&gt;Now date shows the correct time.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Blinkenlights&lt;/strong&gt; I wrote a script to make the LEDs move back and forth. I start this at boot. (In an earlier version of the firewall, I edited /etc/rc to turn LEDs on when certain thresholds had been passed in the boot process. But now I don&amp;rsquo;t want to muck up /etc/rc so much.)&lt;/p&gt;
&lt;p&gt;First of all, you need to allow the ports to be written before OpenBSD gets all secure on you. Edit /etc/rc.securelevel and add:&lt;/p&gt;
&lt;figure class="highlight"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-" data-lang=""&gt;#
# Place local actions here.
#
echo -n &amp;#39;enabling LED pins&amp;#39;
gpioctl -q /dev/gpio0 6 set out iout
gpioctl -q /dev/gpio0 25 set out iout
gpioctl -q /dev/gpio0 27 set out iout&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;p&gt;I got these numbers from the Status LEDs section of the &lt;a href="http://www.pcengines.ch/pdf/alix2.pdf" target="_blank" rel="noreferrer"&gt;ALIX manual&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Then create /usr/local/bin/cylon:&lt;/p&gt;
&lt;figure class="highlight"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-" data-lang=""&gt;#!/bin/ksh -
led3on(){
gpioctl -q /dev/gpio0 6 0
gpioctl -q /dev/gpio0 25 0
gpioctl -q /dev/gpio0 27 1
}
led2on(){
gpioctl -q /dev/gpio0 6 0
gpioctl -q /dev/gpio0 25 1
gpioctl -q /dev/gpio0 27 0
}
led1on(){
gpioctl -q /dev/gpio0 6 1
gpioctl -q /dev/gpio0 25 0
gpioctl -q /dev/gpio0 27 0
}
ledsoff(){
gpioctl -q /dev/gpio0 6 0
gpioctl -q /dev/gpio0 25 0
gpioctl -q /dev/gpio0 27 0
}
while [ true ] ; do
led1on
sleep 1
led2on
sleep 1
led3on
sleep 1
led2on
sleep 1
done&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;p&gt;Finally, start it from /etc/rc.local:&lt;/p&gt;
&lt;figure class="highlight"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-" data-lang=""&gt;# Add your local startup actions here.
echo -n &amp;#39;cylon&amp;#39;
sh /usr/local/bin/cylon &amp;amp;&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;p&gt;On reboot, yay, blinky! That at least tells you the kernel hasn&amp;rsquo;t crashed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Reducing the mail&lt;/strong&gt; Because flashrd is really OpenBSD, it sends mail more suited to a server than a firewall with limited disk.&lt;/p&gt;
&lt;p&gt;First thing I noticed:&lt;/p&gt;
&lt;figure class="highlight"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-" data-lang=""&gt;Running security(8):
Checking special files and directories.
Output format is:
filename:
criteria (shouldbe, reallyis)
etc/rc.conf.local:
permissions (0644, 0755)&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;p&gt;I fixed that with a chmod 0644 /etc/rc.conf.local. So now /usr/libexec/security shows no problems. Good.&lt;/p&gt;
&lt;p&gt;Once that&amp;rsquo;s done, make things complain less:&lt;/p&gt;
&lt;figure class="highlight"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-" data-lang=""&gt;crontab -uroot -e&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;p&gt;and comment out:&lt;/p&gt;
&lt;figure class="highlight"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-" data-lang=""&gt;#30 1 * * * /bin/sh /etc/daily
#30 3 * * 6 /bin/sh /etc/weekly&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;p&gt;This prevents the daily and weekly reports, leaving just the monthly one.&lt;/p&gt;
&lt;p&gt;Next, I noticed that sendmail gets run from root&amp;rsquo;s crontab, so it doesn&amp;rsquo;t need to run at boot:&lt;/p&gt;
&lt;p&gt;/etc/rc.conf:&lt;/p&gt;
&lt;figure class="highlight"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-" data-lang=""&gt;sendmail_flags=NO # &amp;#34;-L sm-mta -C/etc/mail/localhost.cf -bd -q30m&amp;#34;&lt;/code&gt;&lt;/pre&gt;
&lt;/figure&gt;
&lt;p&gt;That should keep the thing running a little longer without running out of disk. Actually, /var/mail is on the MFS, so it will keep it from running out of ramdisk.&lt;/p&gt;
&lt;p&gt;(This post is part of &lt;a href="https://andrewmemory.acornwall.net/blog/2012-06-21-building-an-alix-firewall" &gt;Building an ALIX firewall&lt;/a&gt;)&lt;/p&gt;</description></item><item><title>Building a quiet MythTV box - selecting a case</title><link>https://andrewmemory.acornwall.net/blog/2012-04-20-building-a-quiet-mythtv-box-selecting-a-case/</link><pubDate>Fri, 20 Apr 2012 23:34:05 -0700</pubDate><author>andrewmemoryblog@gmail.com (Andrew's Memory Blog)</author><guid>https://andrewmemory.acornwall.net/blog/2012-04-20-building-a-quiet-mythtv-box-selecting-a-case/</guid><description>&lt;p&gt;I&amp;rsquo;ve started looking around for a quiet but thermally good case for a MythTV box. My first thought was to do an HTPC case - the &lt;a href="http://www.lian-li.com/v2/en/product/product06.php?pr_index=580&amp;amp;cl_index=1&amp;amp;sc_index=26&amp;amp;ss_index=68" target="_blank" rel="noreferrer"&gt;Lian Li HTPC C60&lt;/a&gt; looked good.&lt;/p&gt;
&lt;p&gt;But then I started worrying about airflow around the case. I&amp;rsquo;ve got a fairly narrow spot to put it in - about 46 cm - so a PC that&amp;rsquo;s 44 cm wide doesn&amp;rsquo;t leave a lot of room for cooling.&lt;/p&gt;
&lt;p&gt;I decided to look into mini towers instead. The &lt;a href="http://www.lian-li.com/v2/en/product/product06.php?pr_index=567&amp;amp;cl_index=1&amp;amp;sc_index=25&amp;amp;ss_index=63" target="_blank" rel="noreferrer"&gt;Lian Li V600F&lt;/a&gt; looks like it would be nice, but it has these ugly blue fans.&lt;/p&gt;
&lt;p&gt;I also looked into the &lt;a href="http://www.quietpcusa.com/NZXT-H2-Classic-Silent-Midtower-Chassis-P800C80.aspx" target="_blank" rel="noreferrer"&gt;NZXT H2&lt;/a&gt; (some were saying it was too flimsy), &lt;a href="http://www.antec.com/Believe_it/product.php?id=MTgwOA==&amp;amp;lan=us" target="_blank" rel="noreferrer"&gt;Antec P183&lt;/a&gt; (too tall, not a mini tower) and &lt;a href="http://www.silverstonetek.com/product.php?pid=303" target="_blank" rel="noreferrer"&gt;Silverstone TJ-8e&lt;/a&gt; (an 18 inch fan in front, but only that. How hard to get a replacement when it dies?)&lt;/p&gt;
&lt;p&gt;Now I&amp;rsquo;m leaning towards the L&lt;a href="http://www.lian-li.com/v2/en/product/product06.php?pr_index=314&amp;amp;cl_index=1&amp;amp;sc_index=25&amp;amp;ss_index=62" target="_blank" rel="noreferrer"&gt;ian Li B10&lt;/a&gt;. It&amp;rsquo;s too bad that &lt;a href="http://www.silentpcreview.com/" target="_blank" rel="noreferrer"&gt;SPCR&lt;/a&gt; hasn&amp;rsquo;t reviewed it - they seem to know a thing or two about quiet and heat.&lt;/p&gt;</description></item><item><title>Airnet AES108P power supply</title><link>https://andrewmemory.acornwall.net/blog/2012-04-03-airnet-aes108p-power-supply/</link><pubDate>Tue, 03 Apr 2012 22:05:30 -0700</pubDate><author>andrewmemoryblog@gmail.com (Andrew's Memory Blog)</author><guid>https://andrewmemory.acornwall.net/blog/2012-04-03-airnet-aes108p-power-supply/</guid><description>&lt;p&gt;I have recently moved, which means I&amp;rsquo;ve disconnected all my wall warts and had to reconnect them.&lt;/p&gt;
&lt;p&gt;Normally, this isn&amp;rsquo;t a problem - but for one ethernet switch, it was. The box is labelled &amp;ldquo;Fast Ethernet Switch&amp;rdquo; with no other markings on the front.&lt;/p&gt;
&lt;p&gt;The back has 8 ethernet jacks (ok so far) and a DC tip connector labelled &amp;ldquo;AC IN&amp;rdquo;. Great. The DC connector looked like a standard 5.5 mm outside / 2.1 or 2.5mm inside connector.&lt;/p&gt;
&lt;p&gt;Markings on the bottom of the box: ES3108CH3 and AES108P. That appears to mean it was an Airnet AES108P, also known as a Pro-Nets ES3108CH3. Airnet appears to be out of business, and Pro-Nets is a Chinese exporter who lists it as &amp;ldquo;Power: 1w&amp;rdquo; (but no voltage).&lt;/p&gt;
&lt;p&gt;So I cracked the box. The circuit board had a marking I took to indicate centre positive (which would mean &lt;em&gt;not&lt;/em&gt; AC in), so I attached the bench supply and worked my way up from 0.&lt;/p&gt;
&lt;p&gt;The device needs slightly more than 5v to turn on. I was getting it booting up at around 5.6 v, drawing about 520 ma with 3 network cables attached. I suspect it came with a non-switching wall wart rated for 5v. I tried with a 6v transformer I had handy, and that was too much. (Incidentally, if it&amp;rsquo;s nominally 5v, that&amp;rsquo;s more like 2.5w than 1w.)&lt;/p&gt;
&lt;p&gt;I fear I have let the magic smoke out now&amp;hellip; I had it running and moving packets at a little higher than 5.5 v, but now it boots up partway and croaks. Sigh.&lt;/p&gt;
&lt;p&gt;Perhaps this will be helpful to someone else who&amp;rsquo;s not sure what to use. Seems like a non-switching 5v 1a transformer would be about right. A 1500ma switching 5v transformer I had did not work.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m not taking responsibility if this smokes your switch&amp;hellip; or burns down your house. &lt;strong&gt;Use this info at your own risk&lt;/strong&gt;. Let me know in the comments if it worked or didn&amp;rsquo;t.&lt;/p&gt;</description></item></channel></rss>