Sunday, October 21, 2012

Subaru OEM Subwoofer with Aftermarket Head

Goal

Use a cheap OEM used subwoofer which comes out of the last 10 years generations of Suabrus with a aftermarket head unit. These subs perform well and are very easy to come by.

How it works

The OEM sub gets signal from the rear speakers, and power from the power off the back of the radio. You don't have to fool with switching wires or triggers to turn it on, its all automatic. It has its own internal amp as well.

Wiring Diagram

The OEM harness has several colored wires, below is their colors matched up with a Clarion radio. Simply use a knife to strip a tiny part of the harness in the car, and splice the sub harness into it. It worked perfectly on my first try. I had to test the wires on the sub harness for which gray was which, and unfortunately when I figured it out I didn't write it down.




Friday, October 19, 2012

Last of the mohicans, Garmin 855

Goal

An affordable GPS unit for automobiles that contains all the features you need for nav and music listening.  All built-in and no plugging required

State of Market

Almost all affordable units in stores do not contain MP3 player features, I believe because it would cut into sales of aftermarket head units.  You can usually only find the feature through an online order.  I have not tried other brands, as most of the features I require I've so far only seen in Garmin.  Over the years, there are only a few models available that have all the features at any given time.  Also, units with lifetime maps do not have MP3 features.  The one unit that does have both does not have a line out port, making the MP3 player useless.

Required Features

  • Line out/head phone connector
  • Dock connector
  • Muti-point nav with importing via GPX
  • MP3
  • SD card slot

Scenarios

When starting your car, the GPS receives power, and boots up to the main screen.  The MP3 player was playing your playlist when you turned off the car, so it resumes in the background, playing from your SD card with your entire music collection on it.  You can choose a destination and the routing commands pause the music to speak.

If you want to create a custom route, such as for a car club, you can prepare it before hand.  You can do this on the unit itself, or using tools such as Google maps and a converter to GPX.  The unit only holds 10 routes ready, but can have as many GPX files staged for import as needed.

Refurb/New/Used

New and factory refurb units come with one free map update, and it can be updated twice if there happen to be new maps within 90 days of first registering the unit.  Used units do not come with this feature.

Available units

I prefer to buy on Amazon, for shipping and return ease.  If there is any problem with a sub-seller, big brother Amazon has my back and they always come through.  The Nuvi 885 is the only model on Amazon at the time of this writing for under $150, and there is a refurb shipped free for $110.  Previous models that met my requirements were the nuvi 780 and nuvi 360.  I still use them both every week.

Bluetooth

Both my nuvi 360 and nuvi 780 had bugs in their Bluetooth software/firmware, making the feature unusable.  They each were serviced by the factory with no success.

Permanent Mounting in Vehicle

I took the leap and permanently mounted my GPS on my dash.  I drilled a hole for a small bolt, and attached the GARMIN 010-10823-03 Adjustable Suction Cup.  After removing the suction cup, the bolt goes through the existing hole and into the dashboard, secured with a small nut on the inside, wedged inside a supporting plastic rib.  I also added a bolt to restrict the height the arm can droop, better supporting the weight of the GPS.  This works best if you press out the hinge rod and reinstall the arm backwards.






Wednesday, October 10, 2012

Backroad Driving: Maps

Background

One of my passions is enjoying elegant roads with great curves. I've encountered many great places and here are a selection you can enjoy.

Colerain, Ohio - Cruise for the Boobs

Google Maps link to route

PDF Version for high quality printing - Includes pictures of turns and dead end notices.

Notes:
  • A wide variety of tricky roads to be taken at a gentle pace your first time.
  • Road debris are common, cops are not.   
  • Many unsited hilly terain
  • Location of some of the steepest straight line hills, Buffalo Ridge

Notes:



What is Infinite Clarity

What is Infinite Clarity?

An idea, method, or moral should be so finely honed so that as they are more and more closely scrutinized, they get even more clear. A value that can be held so firmly, that the more it is questioned, the more obvious that the holder will not waffle. A passion with enough definition and direction the it only gets more interesting the more you investigate it.



Friday, July 13, 2012

Secondary Public Wifi via DD-WRT

Goal

To have a secondary WiFi network for guests, on a separate radio, in a separate location from the main router.

Hindrances

I have a single CAT5 run to the opposite side of the house, plugged into a media center. Using a switch to run both the AP and the HTPC seems like a waste. I'm also not a pro at static routing, so simple is better.

Hardware needed

All I used was a DD-WRT capable router and couple net cables.

Diagram



Setup

Setting up the separate DHCP server was pretty easy following their wiki article.

Extra Recommendations

After setting it up, it makes sense to ensure the address the new LAN uses to reach the main gateway has heavy QoS to prevent guests from overwhelming LAN requests. If you need services to be reachable from both Wifi APs, such as remote controls on phones, simply create a public port that only the internal addresses can utilize. An example is forwarding port 8080 to my HTPC, but only allowing source addresses from inside my two LANs to utilize it. TCP [source]192.168.1.0/24 8080 [destination]192.168.1.50 Don't forget to turn on AP isolation so guests cannot access one another.

Results

After being in use for many months, I get no complaints from guests, and I find myself utilizing the extra stretch of signal everyday. My Android roams between the two networks as needed depending on where I'm at without noticeable delay.

Verizon Extender

You may have noticed the cellular extender on my network, it extends a 1x digital area around my house for all Verizon devices. It functions as an extension of their network, and when connected to its data service, all access is tunneled to their network before leaving an endpoint. Its great for testing, and using it as a trigger in Tasker to turn on my WiFi has greatly increased my battery life and seamless access for high speed data access on my Android. Its reach of 1x signal covers both my G and N areas, so it always triggers as I drive up the driveway or walk into range from off our property.



Thursday, December 30, 2010

Extracting ISO in Linux via Command Line

Goal

By using simple command line options, reliably extract any ISO in Ubuntu.

Hinderances

Apparently, many tools are out of date for extracting ISO images via CLI. The linux kernel is very up to date and is the most reliable for accessing ISO files. Unfortunately, there is no one command to use it.

My Aliases

I'm no scripting genius, so I just used a few aliases to make it pretty easy.

First, make the directories that you plan to use for your ISO mounts.
cd
mkdir iso1 iso2 iso3


Then create aliases in your .bashrc
pico .bashrc

Now add the aliases to mount and unmount the ISOs.
alias mountiso='sudo mount -o loop ./*.iso ~/iso1'
alias mountiso2='sudo mount -o loop ./*.iso ~/iso2'
alias mountiso3='sudo mount -o loop ./*.iso ~/iso3'
alias unmountiso='sudo umount ~/iso1'
alias unmountiso2='sudo umount ~/iso2'
alias unmountiso3='sudo umount ~/iso3'


To use them, cd to the dir with your ISO in it, and run one of the 3 commands.
cd ~/Downloads/CoolLinux
mountiso2


Copy your files. I like rsync's nice progress meter.
rsync --progress ~/iso2/BiggunTutorial.mp4 ./

Repeat for other ISOs if needed.



Wednesday, July 15, 2009

Script for Xbox Live: Detect and Disable Bittorrent

Goal

When you are playing games on Xbox Live, you usually need every bit of ping speed possible. For us with DSL, when the line is saturated, the ping times drop. If you run a bittorrent client around the clock, then even small amounts of seeding or large amounts of downloading can noticeably slow your ping times. Most modern connections are good enough to not drop packets, but only fractionally delay them. When that one packet is your sniper rifle bullet, any delay can have dire consequences. This whole subject can apply to PS3 or any other service of your liking. You could also use some of the commands for PC gaming.

Best solution

The best solution I have discovered by trial and error is to always decrease the load on the line. Prioritizing packets at the router does not always ensure that the modem can imediately send them as requested. We need to detect that an Xbox live connection is active and reduce the bandwith load at the source, which in this example is uTorrent.

How to detect Xbox Live

Well it turns out this can be fairly difficult to do accurately, as the service is always changing. The easiest and most reliable way is to just detect that the Xbox unit is active on the LAN, and assume that Xbox Live is active. Other methods may work, but this is the easiest and most reliable.

check=`ip neighbor | grep 192.168.1.6 > /dev/null; echo $?`

First we need to make sure the Xbox has a static IP, or a static DHCP so we can detect it. Then we use "ip neighbor" to see if it is listed as active in the ip tables for the router. This command should find it immediately as soon as the Xbox comes online. When it turns off, there will be a delay before it disappears. The reason for using a variable is in case we have more than one Xbox.

Running a command once it is detected

Once you have detected the IP is active, then you need to run some sort of command to tell something to cut off your bittorrent bandwidth. One way is to use routing to cut of the IP of your bittorrent machine, but a more elegant way is to send a command to the bittorrent client to have it gracefully ease the traffic. uTorrent has a nice web-ui that you can send commands to change its settings. The settings we are concerned with are restricting upload, download, and total number of connections. The reason for restricting the connections is that some modems bog down with too many connections, regardless of the throughput. And in an unrelated note, it is always good to have lots of connections for good bittorrent speeds. The wget command tries to get a webpage, this one includes sending the request for the desired settings. There must also be a command to reset the settings back to default for when the Xbox goes offline, in this example, it is "max_ul_rate\&v\=0", which means unlimited bandwidth.

Update: uTorrent 2.x now enables a new authentication measure by default, which is not compatible with this script. Simply turn it off as mentioned in this thread. Access Options...Preferences...Advanced then set webui.token_auth to false.

if [ $check -eq "0" ]; then
wget -O /dev/null http\://username\:password\@192.168.1.3:9999/gui/\?action\=setsetting\&s\=max_ul_rate\&v\=5\&s=max_dl_rate\&v=5\&s=conns_globally\&v=50 2> /dev/null
else
wget -O /dev/null http\://username\:password\@192.168.1.3:9999/gui/\?action\=setsetting\&s\=max_ul_rate\&v\=0\&s=max_dl_rate\&v=0\&s=conns_globally\&v=300 2> /dev/null
fi


Multiple Xbox's

You can setup more than Xbox as well, as long as they have their static IP's set.


check=`ip neighbor | grep 192.168.1.6 > /dev/null; echo $?`
check2=`ip neighbor | grep 192.168.1.55 > /dev/null; echo $?`
if [[ $check == "0" || $check2 == "0" ]]; then


My whole script

Here is my script in its entirety. It runs every 1 minute on my Linksys WRT54GL running Tomato Linux.

check=`ip neighbor | grep 192.168.1.6 > /dev/null; echo $?`
if [[ $check == "0" ]]; then
wget -O /dev/null http\://username\:password\@192.168.1.3:9999/gui/\?action\=setsetting\&s\=max_ul_rate\&v\=5\&s=max_dl_rate\&v=5\&s=conns_globally\&v=50 2> /dev/null
else
wget -O /dev/null http\://username\:password\@192.168.1.3:9999/gui/\?action\=setsetting\&s\=max_ul_rate\&v\=0\&s=max_dl_rate\&v=0\&s=conns_globally\&v=300 2> /dev/null
fi


Source of information

The original thread that I discussed and got ideas from is below. Thanks for your help!
LinksysInfo Forums: Script for Xbox Live: Detect and Make QoS Changes


Updates for using on Ubuntu

I switched from running on my router to running on my Ubuntu box.  I added a cron script to run every minute, and since the box does not actively interface with the switch and Xbox, I added a ping to the script.  This changes what gets listed in the ip neighbor results, so I simply changed it to detect the MAC of my Xbox instead of the IP.

Updated part of script:
#!/bin/bash
ping 192.168.1.14 -c 1
check=`ip neighbor | grep 00:dd:d8:dd:2f:5a > /dev/null; echo $?`