The WiFirebox

Need WiFi in a Firebox? No problem. You just need a PCIe to miniPCIe adapter, a PCIe flex adapter, and a Wifi card (preferably one that supports AP mode of course).


Now, I made the mistake of trying to do this with the WLE900V5-27 as pictured. It’s a great card if you can get it to work, but barely worth the hassle. The card uses external ground and 5v connections, and it’s massive. The two problems that the card’s size presents are that you need a miniPCIe adapter with enough space around the slot (I used the MP2W), and you have to deal with the huge RF shield on the bottom of the card too. The RF shield means that not only can there not be any components on the board below, but you’ll also have to tape over anything possibly conductive. I used the MP2W adapter, which came with some capacitors which were in the way of the card. Fortunately, they weren’t necessary for the adapter to function so removing them was safe. Unfortunately, I missed a part that needed to be insulated the first time around, so one of the FFC cables let some magic smoke out and I had to switch to the other one. Nothing else was damaged so everything worked fine once I fixed the insulation issue.

On top of that, the card uses MMCX connectors, so you’ll have to get different pigtails as well. As for actually mounting the pigtails/antennas, the easiest way is to take the PCI bracket the adapter comes with, take the pieces that hold the card to the bracket, and bend them so that they’re parallel with the rest of the bracket. Then, you can secure it in place with whatever means necessary.

Using the Firebox Arm/Disarm LED under Linux

Quick script for controlling the arm/disarm LED, created from the info here. I took a quick stab at trying to make WGXepc run on Linux but didn’t have any luck, so I just created this instead.


lport='dd of=/dev/port seek=1167 bs=1'
fport='dd of=/dev/port seek=1179 bs=1'


case $1 in
 printf $red | $lport 2>/dev/null
 printf $green | $lport 2>/dev/null
 printf $off | $lport 2>/dev/null
 printf $steady | $fport 2>/dev/null
 printf $flash | $fport 2>/dev/null
 echo 'Usage: wgled (red|green|off|steady|flash)'

Unfortunately since it’s just a single bidirectional LED, there’s no way to get the green and red on at the same time.

These addresses and values are for the X-Core-e boxes. For other boxes, look in the WGXepc source (available here) to find values and addresses. The value that you printf is the value you want to write, while the seek value for dd is the address, converted to decimal.

Still not sure how to control the disk or expansion LED.

OpenWRT Firebox Part 2

I’ve started using the Firebox mentioned previously as my main device. I upgraded it to 14.07 and had to go through the installation process again, so I’ll document some of the quirks involved in getting it to work.

Read the rest of this entry »

Using the ThinkVantage LED on an x300

Short version: I figured out a way to control it that will actually work on modern systems. Read below to see how to get full control of it (even more control than you get from the other LEDs, including 3 different blink modes).

After googling and digging through some resources such as this thread, I had come up empty-handed, since the /proc/acpi/ibm/ecdump interface is deprecated and no longer included in the thinkpad-acpi driver. The solution: a fancy new program called “ec_access“, which uses the sysfs embedded controller interface, rather than the deprecated procfs one.

Just one problem: it’s not enabled in the kernel by default. I’ll leave you to figure out how to compile a custom kernel for your distro, but the config option that needs to be enabled is “CONFIG_ACPI_EC_DEBUGFS”. This will expose /sys/kernel/debug/ec/ec0/io, which ec_access uses. While you’re at it, you may also want to enable “CONFIG_THINKPAD_ACPI_UNSAFE_LEDS”, which will give you control over the orange and green battery LEDs.

Once you’ve got the kernel working, and can confirm that /sys/kernel/debug/ec/ is present on your system, compile ec_access.c.

Now, you should be able to run “ec_access -w 0x0c -v 0xXY”, where Y is the LED number (“d” in the case of the thinkvantage LED), and X is one of the following:

  • 0-7: LED off
  • 8-b: LED on solid
  • C: Slow, heartbeat-like pulse
  • D: Smooth, slow pulsing
  • E: Faster blink
  • F: LED on solid

Now, you can use this LED in scripts or whatever you need it for. Unfortunately, I haven’t taken time to look at how one would modify thinkpad-acpi to support this LED (or even why its existing tpacpi::thinkvantage LED interface doesn’t seem to work for this).

Known issue: The LED doesn’t seem to run at full brightness when it is set to solid. It is visibly brighter when put in one of the blink modes.

Mini-review: Intel 7260HMW (Updated 2014-11-18)

I bought this to replace a Wi-fi card in my laptop (Thinkpad X300) since the standard card had flaky Linux support. The 7260HMW is a half-length miniPCIe card with 2xU.FL connectors.


  • 802.11ac support
  • Good Linux drivers, works out of the box on Debian testing
  • Built-in Bluetooth 4.0
  • Supports AP Mode
  • Low power usage


  • General signal strength is slightly on the poor side (happens on both Linux and Win7 so it’s not a driver issue)
  • Only 2 spatial streams supported, only 2 antennae. If you currently have 3/4 spatial stream 802.11n APs, this card could possibly see worse performance than a 3/4 stream client.
  • AP Mode is completely half-assed, only supports 2.4GHz band which means no 802.11ac Also it only supports 1 AP or STA at a time. See the dump below, section “valid interface combinations”.


  • If your laptop has a Bluetooth LED in addition to Wi-fi like on many Thinkpads, this card won’t interact with it. In fact, having multiple BT cards (this card+builtin BT) can even cause the LED to not even work with the builtin BT if you choose to leave it installed (Easy enough to remove on my X300 but difficult on my W510).
  • The Wi-fi LED will just be on solid, rather than on+blink on activity. Does this on Win7 and Linux, and none of the settings in /sys/class/leds/phy0-led/trigger seem to get the desired behavior. If you want this functionality, you’ll have to write a script to manually toggle the LED (There’s a netdev LED trigger out there, but it was very unstable for me).


Dump of phy info. Note the no-IR flags on the 5GHz frequencies, meaning 5GHz AP mode is not supported.

Using the Sierra MC5725’s GPS on Linux

After not being able to get this card’s GPS to do anything, I forgot about it for a while. Now that I’ve had some time, I revisited it and was able to get it working. Read on to see how.

Read the rest of this entry »

Major MVpyBot Refresh

I have rewritten most of MVpyBot. New features:

  • It has a GitHub page
  • The GitHub page also has some good documentation for admins, users, and developers
  • Improved module architecture (unfortunately, modules will need to be rewritten but this isn’t hard)
  • Code in general is much less of a clumsy hack
  • Proper error reporting (no more having to guess what’s wrong/enable debug mode)
  • New implicit authentication mode, designed for IRC servers where nicknames are already authenticated (such as

Head on over and try out the new version.

Installing OpenWRT on a Firebox X550e

I recently came into possession of a Firebox X550e Core that was thrown out due to a bad power supply. Turns out OpenWRT (or almost any OS for that matter) is pretty easy to install on this thing. Read on for some photos and a how-to.


Read the rest of this entry »

An RGB LED for your RSPro

As I mentioned in my review, the Routerstation Pro only has a single user-programmable LED. However, it has 7 GPIO lines that can easily be attached to more LEDs. Read on for instructions and pictures.

Read the rest of this entry »

Review: RouterStation Pro + SR71A

After finally deciding to replace an aging WRT54GL, I decided to not get a typical poor-performing home router and go for a more professional product. The RouterStation Pro fit my needs perfectly, with its expandability and performance being far beyond most home routers. Read on for the review and pics.

Read the rest of this entry »