Cutting the cord? Or part of it…

So the Cox bill has been getting out of control.  After the latest package deal ran out, the bill bumped up to nearly $240 per month, mostly for crap (in the form of TV channels and phone features) that we don’t want.  That’s a ton of money.

The requirements are:

  • Landline with caller ID
  • Live TV with the channels WE watch.  Local channels, Fox News, History, Discovery, AMC, HGTV, several others. 
  • Internet to support full time telecommuting

I already switched the phone service over to Ooma.  I bought a Telo and signed us up for Ooma Premeir service.  That gives us caller ID, voicemail, and unlimited calling in & out.  That will reduce the monthly phone service spend from $53.62 (I shit you not, that’s what Cox was charging me) to less than $20 per month — for more service.

Now, next up is cable TV. Cox’s bill comes to a little over $154, including taxes and fees and surcharges.  I could reduce that by about $24 by dropping HBO and Showtime, which suck anyway and we only have because they were included in the discount package that has expired.  Still WELL over $100 a month for, quite frankly, an awful lot of crap.  200+ channels, but of course they include crap we’d never watch in a hundred years just to try to justify the insane price. 

The last time I looked at alternatives like Hulu, Netflix, Sling, etc. — and it was not that long ago — they all fell woefully short of meeting any of our requirements.  We stuck with cable TV simply because there was no other way to watch, for example, The Walking Dead, or Fox News, or Nebraska football games, live.  A few hours or days or a year after the fact, sure.  Or not at all, depending on the service.  And we’d probably need to sign up for several, resulting in a total bill exceeding what we were paying for cable in the first place.  Oh, and get an antenna up that would work for the local channels, since NONE of them covered those.

Well, it seems the picture has changed significantly.  For about $40 a month Hulu will give you all their stuff, plus live TV covering all the channels we watch (BTN for Husker football included, woohoo!) and a DVR service.  It’s worth a try.  We already have Amazon Prime, mostly for the shipping.  The decision to go with a Fire TV Cube was pretty simple.  I received and installed that yesterday, and signed up for a free trial week of Hulu with live TV.  Oh, and as a side benefit…  it looks like this may also negate the need to try and find yet another “universal” remote control, potentially saving another few rubles.

Last night was our first night watching Hulu on the Fire TV Cube.  Overall the user interface ranges from “fair, needs improvement” to “frustratingly clunky” to “ridiculously obtuse”.  Some of that’s the Fire TV, some is Hulu.  It’s bearable, and I hope it improved with future app updates.  We also had not one, but THREE screwups while trying to watch live TV.  The first was innocuous and not a big deal — watching the news, but the program guide listed it as some oddball foreign cartoon name.  OK, no big deal.  Then we tried watching Vikings on History Channel.  Several minutes into the episode it restarted,  restarted again, and when we tried to get back to the live stream it switched to some episode of “Forged in Fire”.  Horrifically frustrating.  10-15 minutes later we got back to Vikings, but of course missed part of the episode.   We’ll have to watch it again.

Then we tried watching another show, “Curse of Oak Island”.  What we got was an old episode of “Stargate SG-1”, which most definitely has not improved with age.  It would have been funny if it were not for the fact that we couldn’t watch the damn show we wanted to watch.

I will say that non-live streams seem to work perfectly, and the video quality seems to be great.  And we can watch some channels for hours with zero issues.  I chatted with Hulu support today, and the agent says it’s a “known issue” that they’re working to resolve.  IF they resolve it soon, and completely, we’ll have a winner.  If they do not, we’ll need to decide whether we stick with Hulu and adapt (watch things delayed a little), or scrap it and pare our Cox cable back to the minimums and deal with the expense.  Or something else entirely. 

Once we have a final solution to this question, I’ll post a monthly spend and savings analysis.  I think we can probably save about $100 a month, to be honest.  I’m glad I don’t own stock in Cox or any other cable company.  We’ll still have to use them cor Internet access, of course, but who knows how long that will be true?


Re-lighting the basement

Our basement has a bunch of recessed can lights in the ceiling.  Like, 16 of them total, if you count the two in the stairwell.  Originally they were all populated with 65 W incandescent flood lamps.  Quite a while ago, I replaced them with CFL bulbs that only required 15 W each.  Since I was using the basement as my home office, that was quite a savings.  Assuming the lights were on around 12 hours a day, it saved roughly 9.6 kWH of electricity daily.  Those CFL lamps were not cheap, about $14 each as I recall…  but they paid for themselves in under a year, if I remember the math right.

Of course CFL lamps don’t turn on at full brightness immediately.  They took a few seconds to get up to snuff, maybe half a minute or so after they were installed.  It was OK, not great, but not bad at all considering the energy saved.  Over time, though, they took longer and longer to turn on.  They were also getting dimmer and dimmer over time.  Lately it’s been turn on the lights, then go do something else for five minutes or so — and the light is still not great.  It was time to replace them.

I ordered a batch of Feit 90+ CRI 75 W replacement, dimmable LED retrofit kits.  These replace the lamp and trim, and give substantially more light for roughly the same power consumption.  They’re rated at 14 W and 850 lumens.  So far I’ve installed 10 of the 16, and the difference is striking.  Of course they reach full brightness as soon as you flip the switch, which is nice.  They’re also quite a bit brighter than the CFLs ever were, so the amount of available light as gone from inadequate or barely adequate to “plenty”.  And these were cheap, at an average of less than $7.50 per fixture after shipping. 

The real surprise was how long those CFLs had been in place.  I didn’t realize it, but I found a notation on one that it was installed in mid-2007.  I’m pretty sure that was a replacement for one of the failed original lamps, because they were supposedly warrantied for a few years.  I’ll say this — after eleven years, those CFL bulbs owe me nothing.  If I get the same life out of the LEDs I’ll be a happy guy.

Now to figure out how we’re supposed to dispose of CFL bulbs.  I’m pretty sure they’re not supposed to go in the garbage, and I’ve got a pile of them now.

How I became Citröen’s least favorite person

So, how the hell was I supposed to know that the rather mundane looking car getting its rolling glamour shot in the street in front of our hotel was a super secret new model?  I was as shocked as anybody, especially when the video producer and the lady from the ad agency tracked us down in the street in Copenhagen and explained that they were about to lose their jobs because of a tweet I posted… and the numerous bloggers who had copied my video to YouTube and were blogging about he “secret spy photos” of the new Citröen.

I have a French lawyer now…

It started out innocently enough.  Lisa and I were on vacation in Copenhagen, and after a fantastic week this was our last night in the hotel (actually a studio apartment) where we were staying.  I had stepped out to get a few things at the little grocery store around the corner.  When I tried to return to the apartment, there were some people in high-visibility yellow vests keeping everyone back from the street.  After a few minutes I figured out that they were there to shoot footage of a car for a commercial.  The car didn’t look like anything exotic — a little Citröen wagon style like we’d seen dozens of times around Copenhagen, although this one lacked the bumpy plastic panels in the doors.  Eventually there was a pause in the preparation and they let a few of us who had been patiently waiting cross the street.  I saw the camera truck, a well used vehicle with an articulating arm from which hung the video camera on a stabilizing mount.  The car wasn’t terribly interesting but the camera rig was pretty cool, actually; my geek side liked it.

A little later on, up in the third floor apartment, I watched from the balcony as they made a couple more passes down the street.  The camera truck and the movie star Citröen would drive down the street in tight formation, then they’d come back and do it again.  Before I came back inside I shot some video with my iPhone of the process.  Seeing the camera swivel on the end of its arm was pretty slick, and now I knew how some of the moving vehicle shots we see all the time in commercials and movies are done.

Knowing that my son would enjoy seeing the process as well, I tweeted the video and tagged him.  Unfortunately, I mentioned Citröen as well.  That was a big mistake, as it turns out.  If I hadn’t done that, this probably wouldn’t be a story.  Probably only two people in the world would have seen that video, and neither live in a country where many people pay much attention to Citröen, who hasn’t sold a new vehicle in the US since Ford was President.

The next morning we checked out and headed to the train station, dragging our wheeled luggage along.  We’d been walking the entire week in Denmark, averaging between 5 and 6 miles a day, and the train station was a little under a kilometer away.  We were about halfway there when a car pulled up to the curb along side.  In it were a woman and a man, both looking a little concerned. They asked if I was Dale, I said yes, and they both got out.  They had been shooting a car commercial the day before, they said, and now they had a big problem.  I was a little puzzled…  if I’d accidentally gotten into a shot, they could just work around it.  No, it was “the video I had posted to YouTube and the blogs”.  What??  I didn’t post anything to YouTube.  Well, Citröen was livid, her boss was about to fire her, and there was a huge problem because, unbeknownst to me, that was the new and as-yet-unannounced refresh of that model.  No one was supposed to see it, and now people had.

They had gone back to the shoot location, figured out the balcony from which the video had been shot, and asked the desk clerk who was staying there.  The hotel staff told them we’d just checked out and were headed to the airport, and they drove around until they found us.  If it had taken them ten minutes longer, we’d have been long gone and out of touch for the next 18 – 20 hours or so.

I showed them the tweet, and the woman (who was French — the man was Danish) asked if I would delete it.  Sure, absolutely, I don’t want to cause them any trouble.  Tweet deleted.  Unfortunately, some jackass had copied the video and posted it to YouTube — with my name included in the video title.  Great.  And a bunch of bloggers were now claiming to have “exclusive spy photos”, which were actually still frames taken from my video.  No one had asked me to use or copy it, of course.  No one other than the first guy had even bothered attributing the video to me at all.  Honestly I was feeling mixed emotions — a little embarrassed for having caused these poor people so much trouble, and a little pissed off that these other jackasses were using my footage, AND claiming credit for it to try to make themselves look like more than the simple scavengers they are.

We had to get to the airport, but I promised to work with the woman to get the copies removed wherever we could.  I knew we were going to be playing Whack-A-Mole…  once that kind of stuff is in the wild, your chances of suppressing it are slim.  I sent an email to the guy who had posted the video to YouTube, and sent YouTube a takedown notice.  It’s all we could do before we had to get on the plane home.

Over the next few days, I spend a couple hours a day following up on various places where the video and stills from it were posted.  Twitter accounts popped up like zits on a high schooler.  Some jackasses were making new YouTube videos with slideshows of still images captured from the video.  There were blogs in France, the Netherlands and India, all using the same three or four stills — meaning they were late to the party and just copying images from other people’s Twitter posts, which were using images swiped from the YT video, which was swiped from my tweet.

The French woman’s daughter is an attorney, and I gave her permission to defend my rights to the video and still images in the EU, pursuing whatever action she needed to in the courts over there.  Not because I’m worried about the video — I’m not making one single penny from it or the pictures I got.  I don’t want to cause Citröen any problems; they’ve never done anything to me.  I had no idea that the commercial shoot involved a model that no one had seen (more about that later), and I don’t want my video to cause the ad agency or production company to incur the wrath of their customer.  I’m just trying to minimize the damage.  And to be honest, it pisses me off that these other jackasses are basically stealing my work, claiming it as their own, and profiting from it through ad revenues.  Not a single one of them has once asked permission to use the footage, given any credit or attribution, offered one cent of compensation, responded to a request to remove it, or cooperated in any way.  In fact they are mostly claiming credit for the “spy photos” of the new model — taken in New York.  Screw them.

Citröen’s outrage, however, has been slightly disingenuous.  While searching for more copies of my stuff, I came across many other photos of the same model — the exact same, in fact.  Different color.  Apparently Citröen had accidentally enabled the new 2018 model configurator on its web site at some point – allowing people to see exactly, in high resolution detail, what the 2018 model looks like.  They pulled it, of course, but again — once that stuff is out there, it’s not going to disappear.

 

Failed voltage regulator

A loot at the picture below should tell you all you need to know about why this replacement John Deere style rectifier-regulator failed.  Typical of low end Chinese goods, an effort was made to make it look like the original, but there was apparently either no comprehension of the design, or they just didn’t care.  You have a large, thick aluminum body that is supposed to act as the ground and the heat sink.  So look at the orientation of the high power semiconductors on the board.  That heat sink isn’t really providing much benefit, is it?  There’s nothing in contact with it, other than a ground wire…  the parts were potted in a rubber compound that insulated them both electrically and thermally.  No wonder it fried after less than 10 hours of operation.

How difficult would it have been to mount those parts on the opposite surface and put them in contact with the aluminum case, perhaps with a dab of thermally conductive grease?  The cost may have increased by a few pennies, and you’d have a fairly reliable part.  So either the manufacturer intentionally produced a defective design, or they simply had no clue what the hell they were doing.  I’ve seen a lot of that coming from China.  I’m sure there are a lot of very sharp, conscientious engineers and business people in China…  whoever produced this piece of crap wasn’t one of them.

New gadget testing

Along with load of keyer circuit board delivered today were some prototypes I had ordered.  I’m working on three different projects for the plane.

  1. Bluetooth stereo interface to the intercom.  This one is a little frustrating.  I have a BT stereo module, and the interface between the headset microphones and the mic input works fine.  I can make a call with my cell, and I sound fine on the other end.  However, the intercom music input is designed for speaker level outputs.  The BT module has line level outputs.  I have another one that will, like many others I see, drive speakers — but it has no mic input and the speaker drive is not suited for common ground.  I don’t want to add a separate stereo amplifier, but I may have to.
  2. The second board will allow switching between the Garmin GPS and a BT serial connection, so I can drive the autopilot from my tablet running Avare or Naviator.  This one needs a little tweaking but will be OK.  I had assumed since the BT serial module has a 3.3V output, that it is non-inverted serial.  Nope.  It’s inverted.  Tomorrow I’ll do some mods to turn the inverting level shifter in a non-inverting level shifter (it’s just a 2N7000 and a couple of resistors).
  3. Have not even assembled the third one yet, it’s a lower priority.  This one will let me add a canopy latch alarm to the Dynon D180 equipped RV-12.  I’ve gotten good about latching the canopy before the run-up, but I’d still like to get this board working.  It piggybacks the canopy latch on the spar pin line, and alarms if the spar pins don’t show as latched (kind of important), OR if the canopy is not fully latched AND the engine is above 3900 RPM.  That way you can start up and taxi with the canopy propped open, but it will alarm during the runup if it’s not latched.  To do that we have to monitor the serial data stream from the D180 to grab the engine RPM.

 

Weather station reporting

I recently put my AcuRite weather station back up after having it sitting in the garage for a year or so.  I have the Internet Bridge, which recently got a firmware update, and wanted to have it reporting to both AcuRite and Weather Underground.

AcuRite’s site will apparently update WU, but only at 15 minute intervals.  And, I wanted to also collect the data locally so I can feed it into Splunk or some other tool for my own use.

Problem is, the AcuRite gateway box only sends data (via HTTP GET) to one fixed hostname that’s hard coded, hubapi.myacurite.com.  SO…  first we intercept those DNS calls to send them where we want them.  In named.conf:

acl wxbridge-only {
        ip.of.wx.bridge/32;
};

view "wxbridge-view" {
        match-clients { wxbridge-only; };
        zone "hubapi.myacurite.com" {
                type master;
                file "hubapi.myacurite.com";
        };
};

And the zone file:

$TTL 14400
@               IN      SOA     localhost. dale.botkin.org. (
                                2016081803
                                3600
                                3600
                                604800
                                14400 )

@               IN      NS      localhost.

hubapi.myacurite.com.   IN      A       ip.of.local.server;

Now the weather bridge, and ONLY the weather bridge, gets your local machine’s IP address for hubapi.myacurite.com.  So next we create a PHP script and use Apache to point /weatherstation to it (ScriptAlias /weatherstation /var/www/cgi-bin/updateweatherstation.php in my case).  The script sends the original HTTP request to hubapi.myacurite.com, then reformats it and sends it to wunderground.com.  It’s also preserved in the Apache access log, so you can ingest it into Splunk.  You could also syslog it or write it to a file, whatever you want.  I started out using a script I found that Pat O’Brien had written, but ended up rewriting it almost entirely.  It’s been years since I wrote a PHP script.

<?php
 // First send it to AcuRite, no massaging needed...
 $acurite = file_get_contents("http://hubapi.myacurite.com/weatherstation/updateweatherstation?" . $_SERVER['QUERY_STRING']);
 echo $acurite;
 // Now re-format for wunderground.com. We don't always
 // get every parameter, so only send those we do get and
 // strip out those that wunderground won't accept.
 $msg = "";
 $winddir = (isset($_GET['winddir']) ? "&winddir=".$_GET['winddir'] : null);
 $windspeedmph = (isset($_GET['windspeedmph']) ? "&windspeedmph=".$_GET['windspeedmph'] : null);
 $humidity = (isset($_GET['humidity']) ? "&humidity=".$_GET['humidity'] : null);
 $tempf = (isset($_GET['tempf']) ? "&tempf=".$_GET['tempf'] : null);
 $rainin = (isset($_GET['rainin']) ? "&rainin=".$_GET['rainin'] : null);
 $dailyrainin = (isset($_GET['dailyrainin']) ? "&dailyrainin=".$_GET['dailyrainin'] : null);
 $baromin = (isset($_GET['baromin']) ? "&baromin=".$_GET['baromin'] : null);
 $dewptf = (isset($_GET['dewptf']) ? "&dewpointf=".$_GET['dewptf'] : null);
 $msg .= "dateutc=now";
 $msg .= "&action=updateraw";
 $msg .= "&ID=<your weather station ID here>";
 $msg .= "&PASSWORD=<your weather station password here>";
 $msg .= $winddir;
 $msg .= $windspeedmph;
 $msg .= $humidity;
 $msg .= $tempf;
 $msg .= $rainin;
 $msg .= $dailyrainin;
 $msg .= $baromin;
 $msg .= $dewptf;
 $msg .= PHP_EOL;
 $wunderground = file_get_contents("http://rtupdate.wunderground.com/weatherstation/updateweatherstation.php?".$msg);
 // Let's log any failures with the original message, what we sent,
 // and the response we got:
 if(trim($wunderground) !=  "success" ) {
 openlog('weatherupdate', LOG_NDELAY, LOG_USER);
 syslog(LOG_NOTICE, $_SERVER['QUERY_STRING']);
 syslog(LOG_NOTICE, $msg);
 syslog(LOG_NOTICE, $wunderground);
 }
?>

So far it’s been working fine for a couple of days. I have noticed that the AcuRite 5-in-one station will go for extended periods without sending some data – it seems like it only sends what has changed, or what has changed with seemingly random pieces of information.  For example, it may send the barometric pressure even if it hasn’t changed, but not the temperature or wind direction if they’re stable.  It’s weird.  Of course now I understand why they only send periodic updates to Weather Underground.  AcuRite’s own site seems to mask this behavior, but Weather Underground does not.  I’m thinking about keeping a persistent state file and sending every parameter with every update, or collecting updates and just sending WU a digest every minute or two.  But that’s a project for another day.

 

A new regulator for the Rotax 912

Depending on whom you listen to, the Ducati regulator supplied with the Rotax 912 ULS in the RV-12 is either a good, solid piece of equipment or a failure just waiting to happen.  I have not had mine fail, but I have noticed that the charging voltage is a little low.  I don’t think I have ever seen it above 13.7 V while in flight, and it’s lower on the ground.  Given that Odyssey recommends 14.2 to 14.7 V charge voltage, I’d like to see it a little higher to get as much life out of the battery as possible.

I’ve read quite a bit on VAF about replacing the original regulator with one designed for John Deere garden tractors.  The compatible John Deere part number is AM101406, and aftermarket replacements are readily available.  They’re everywhere, as a matter of fact.  As it turns out, it seems to be a pretty popular regulator for other applications as well.  At $30 a pop or so, delivered, they’re pretty inexpensive as well.  The only challenge is mounting it, since the hole spacing on the Ducati is wider than the JD item.  The Ducati regulator is about 3-5/8″ between the hole, while the JD replacement item is more like 2-3/8″.

There are several ways to skin this cat.  Some guys have installed an additional nut plate.  My plane is built and I really don’t want that hassle.  I wanted to use the hardware I had on hand, and be able to switch back to the original regulator if needed.  Since mine has not failed, it will be fine to use as a spare.

Below are pictures of a mounting plate that I fabricated from some .125″ stock I had on hand.  Actually it was part of a piece of AL angle stock, with one side cut off with a band saw.  I marked and drilled holes to match the Ducati regulator, then counterbored 1/2″ holes on the bottom to clear a pair of AN3 bolts I had on hand that just happened to be exactly the length I needed.  This mounting plate allows me to use the original pair of bolts to mount the assembly in the plane, and if it ever becomes necessary I can drop in the original regulator with the same bolts.

A brief ground run confirmed that the charge voltage holds steady at 14.2 V down to about 1700 RPM or so, where it drops off slightly.  I noticed none of the voltage fluctuation I have seen with the Ducati regulator.  I’ll throw the original in the plane for a while just in case, but so far it’s looking good.

USB charging for the RV-12

I decided that the only thing I would ever use the 12V power point in my RV-12 for would be to plug in USB power supplies.  So, I figured, why not bypass the middleman and just install a USB charging plug?

It’s trivially easy to find a dual-outlet USB charging jack with the same form factor as the Van’s supplied 12V outlet.  The only downside I could find was a constant 10-15 mA current draw.  The USB power point is a switching regulator and an LED.  Even after clipping one lead to the LED it still draws about 10 mA.  Now, normally the 12V power point is wired directly to the battery positive terminal with an in-line fuse holder.  It would probably take a long time for that 10-15 mA drain to make a real impact on the capacity of the PC680 battery in the RV-12.  It would only be a factor if the battery were weak anyway — precisely when you don’t want any excess drain.  Plus, the old repair guy in me just doesn’t like the idea of cheaply produced electronics left under power all the time, unattended in an airplane parked in a hangar.  Just to be sure I could shut everything off, I moved the supply lead from the positive battery terminal to the switched side (inboard side) of the master contactor.  Now I have USB power controlled by the master switch.

It may be that at some point I will want to plug in something that requires 12 V – like a tire inflator, for example.  I plan to put some leads and small battery clamps on the old power point and keep it around just in case.

ADS-B followup

Fun stuff…  so I’m playing around with several different aviation apps on my Android tablet, with a Stratux setup just sitting on the window sill of the spare bedroom where it can “see” enough GPS satellites to get a position fix.  I’ve got one SDR radio receiver on it, set up for 1090 MHz to catch transponders in passing aircraft.  I went in to plug the power in to charge the tablet — I’d left it in there overnight — and saw half a dozen targets displayed.  I zoomed in a little and there’s an American flight at 31,000… A Virgin flight headed for Newark…  Hey, wait a minute — one looks familiar!

Screenshot_2016-03-16-13-01-03

N151MH – a friend and fellow EAA Chapter 80 member, out in his ADS-B “out” equipped RV-12.  Absolutely beautiful day for it, too!  Have fun, Mike!

Adding ADS-B IN

I really wanted to add ADS-B to the RV-12, for some pretty obvious reasons.  Getting weather and traffic data for improved situational awareness seems like a really good idea.  I’m also not thrilled with the tiny buttons and small screen of the Garmin 496 currently mounted in the panel.  So, I started looking at various alternatives for ADS-B IN.  I figured I had several choices…

  1. Do nothing.  No weather, no traffic, no expense.  Punch flight plans into the Garmin 496 by hand, let that drive the autopilot.  It’s not the worst fate, but there are better ideas.  Cost: None.  Benefit: None.
  2. Pay a ridiculous amount monthly for XM WX, still get no traffic.  No freakin’ way.  Cost: High (several hundred per year).  Benefit: Very low.
  3. Replace the Garmin 496 with a 696 and GDL-39.  I was almost there.  I bought and repaired a used 696 and it’s very nice.  The GDL-39 is not cheap, but I’d have traffic and WX.  Flight planning is easier, but the maps need updating ($$).  Plus it would take MAJOR surgery on the panel — like rip everything out, rearrange it all and rebuild the entire panel with everything custom.  Cost: Mid-high, even after selling the 496 (it’s a little scuffed and gouged on the edges).  Benefit: Mid-high.
  4. Foreflight running on an iPad Mini, with Stratux.  It’s almost a perfect solution…  but it won’t drive the autopilot, which means I’d have to enter the flight plan twice (once in FF, once on the 496) and any enroute changes would need to be done in two places to keep the AP on course.  Foreflight would require an annual expense, though it’s not too bad.  And of course iPad Minis are not cheap.  Cost: High.  Benefit: High.
  5. Avare running on a Galaxy Tab S2 8″, with Stratux.  Avare is completely free including charts, maps, approach plated, A/FD, all of it.  It’s not QUITE as nice or as smooth as ForeFlight, but fairly close.  And it will drive the autopilot with a bluetooth-serial converter, which FF cannot do.  I can keep the 496 in the panel as a backup just in case.  Cost: Medium.  Benefit: High.

I seriously considered 3 through 5.  If I’d been able to figure out how to reduce the amount of panel rework for the 696, or if the cost of the GDL39 wasn’t so high ($400+ used) I’d have probably done that.  As it is, I picked up a used 696 cheap, repaired the battery connector, and will sell it — probably for enough profit to pay for the Galaxy Tab.  That would make my total ADS-B/EFB setup cost under $200, even after mounting good antennas on the plane.