Category Archives: Technology

Saving Battery with Tasker

Posted on by 1 comment

The Galaxy Nexus is notorious for its mediocre battery life, especially when operating in an area with marginal 4G coverage.  Finding that my phone would frequently attempt to maintain a cellular data connection even while not being used, I decided to remedy the issue with BattSaver, my creatively-named Tasker profile designed to minimize power usage from the phone’s radios while not in use.

Components

BattSaver comes in 4 parts, either due to necessity or my own inefficiency.  Still, it is quite simple, and the results speak for themselves.

Left: Samsung Galaxy Nexus LTE failing || Right: Running BattSaver Tasker profile

Left: Samsung Galaxy Nexus LTE failing at being a phone || Right: Improvement with BattSaver activated

There are many of these profiles out there, such as this one on XDA, but I found them to be  either too complex or overly rigid.  While one can attempt to plan for every usage scenario, it eventually becomes so burdensome and inefficient to do so that the whole point of automation is lost.  I don’t, for instance, want to manually add every Wi-Fi network I use to the profile so that it can trigger when away from home.  This is an inconvenience, but worse, it is inflexible.  What if I go on a trip, or change my routine?  I do not want to have to manually update my phone to keep the task working.

Here, as with most things, I’m a fan of the KISS (keep it simple, stupid!) principle.  My profile may not have as many functions, but it is predictable.  BattSaver requires no attention aside from enabling or disabling it, and is –  I’ll bet – at least 90% as effective.

So, back to the 4 components:

Batt Saver Trigger

This profile checks to see that the phone is not in use, as defined by the following conditions:

  • Screen is OFF
  • Charger is disconnected
  • Phone is not at home

If these are met, Batt Saver will activate.  You can also set a minimum percentage the battery must reach before the profile engages – I typically use 25%.

Batt Saver

This is the main profile, which enables airplane mode as long as the above conditions remain met, and no phone calls are ongoing.

Battery Status

This maintains a variable (%BATTLVL) to monitor the battery percentage and use it as a condition in Batt Saver Trigger.

Batt Check

Finally, we need a way to periodically check for messages and email while the battery saver is running.  This turns the radios on every 30min by interrupting Batt Saver for one minute – enough time to connect and send/receive data.

Profiles

As usual, here is a zip of the profiles and tasks if you wish to import them.  Aside from Tasker, you will also need the free version of SecureSettings installed.

The only modification you will need to make is to change or remove the condition in Batt Saver Trigger that checks if the phone is at home.  I use a variable that is set by another profile that monitors the nearby WiFi and Cell towers, so you can either create a similar profile and have it change the %AT_HOME variable (1=yes, 0=no), use a different condition, or just delete it.

Category: Technology | Tags: , , , , ,

Flashcards Like a BOSS…with Anki

When confronted with information overload on a daily basis, one quickly learns how to be efficient when it comes to memorization.  One of my favorite tools for this daunting task is Anki, a multi-platform flashcard application that uses the principle of Spaced Repetition  to maximize retention of information.  There’s nothing more frustrating to spend, say, a semester learning the intricacies of Biochemistry just to forget everything a year later when it comes time to review for an exam.  Sadly, I haven’t managed to solve this particular problem, but Anki is the closest to a solution I have come across.

There are plenty of tutorials out there on what Anki is and how to use it, so what I’d like to focus on is my setup for reviewing cards.

Desktop

To maximize speed and comfort while reviewing 100s of cards in one sitting, I’ve found using the keyboard and mouse to be suboptimal.  Instead, I acquired one of these:

Microsoft Media Center IR Remote (A9O-00007)

Microsoft Media Center IR Remote (A9O-00007)

This is the first half of the equation.  The second is a nifty piece of software called LM Remote Keymap.  It allows you to assign any keystroke (or other function, such as launching programs etc…) to the button of your choosing on the remote.

By default, Anki is set up to use Enter (or the OK button) and the numbers 1-4 to advance and rate cards.  All I had to do was assign a button for Suspending (Hotkey: @), Marking (*) and Undoing (Ctrl-z).  I chose to use 3 of the 4 media buttons above the number pad (Recorded TV, Guide, and DVD Menu), because they had no other function outside Media Center.

With this setup, you can assume any number of postures while reviewing; you aren’t stuck in a chair, nor bound by a cord.  The next option improves on this idea even further…

Treadmill

Here’s the true breakthrough in efficient studying.  If you own a treadmill, the option exists to position it in such a way that allows it to work with the above setup.  At the gym, however, one must improvise…

1) Android Tablet, running AnkiDroid (free) – MUST Support Bluetooth

2) Wii Remote

3) Wiimote Controller App

Wiimote + Nook Color (CM7, Rooted) + AnkiDroid + Wiimote Controller App

Wiimote + Nook Color (CM7, Rooted) + AnkiDroid + Wiimote Controller App

The process is much like before.  You need to map the keys of the Wiimote to function in AnkiDroid.  I used the D-pad for rating cards (Left=1, Down=2, Right=3, Up=4) and the A button for advancing cards (Enter).  AnkiDroid didn’t have as many hotkeys as the desktop version when I last used it (an update may have fixed this), so I just used the touchscreen if I needed to mark, undo or suspend.  I also set the cards to auto-advance after 30sec in the options, marking the current card as failed.

iPad folk – sorry, I’ve had no luck finding a way to replicate this setup.  Even with a Jailbroken device, there are few options for Wiimote tethering over Bluetooth, and all of them are either tech demos or usable solely for games.  No app exists to map keys…yet?

With the proper setup in place, it’s surprising how much more efficient it is to review flashcards.  Mastering Anki’s many functions, such as filtering cards by tag, creating filtered decks, and most importantly – designing cards in a suitable fashion for memorizing – are things that come with time and practice.  With its growing popularity, multitudes of high quality, shared decks, and compatibility (with sync) for all of the major operating systems, Anki is unparalleled for reviewing flashcards in a digital format.

UPDATE: Well, what do you know, using Anki on a Treadmill actually has research to support its effectiveness.  Seth Roberts has an excellent post detailing the synergy of these two activities: Boring + Boring = Pleasant!?

Favorite Android Apps

I just finished loading the latest release of Jellybean (Android 4.2.2) on to my Galaxy Nexus, going through what has become an almost painless process thanks to Titanium Backup and Nova Launcher.   Together, these two apps preserve 99% of my data, settings and homescreen layouts even when performing a factory reset to upgrade safely to the latest and greatest custom ROM of choice (I’m partial to AOKP, myself).

This is usually the time I go through and weed out all of the apps I’ve installed in the last 6 or so months, deciding which have been useful enough to keep, and which are to receive the boot.  This time, I remembered to use my new favorite app-for-sharing-apps, appropriately titled ShareMyApps, to make a nifty list of installed android apps, with links to the Play Store automatically added.  So, without further ado, these are the ones that made the cut (*** denotes favorites):

Productivity

***Adobe Reader 

***Andy-83 

***AnkiDroid 

Body 

Calendar 

CamScanner 

Chrome 

Chase 

Drive 

***Dropbox 

E*TRADE 

eBay 

Embiggen 

Epocrates 

Finance 

Gmail 

Google Reader 

***Google Voice 

Google Voice for DashClock 

***GTasks 

How to Tie a Tie 

OfficeSuite 

Opera Mobile Labs  

Navigation / Car

Earth 

***Glympse 

FuelLog 

FuelLogPro 

GasBuddy 

GeoCam Free 

Goggles 

GPS Essentials 

GPS Status 

GPS Test 

***Guard My Angel 

Locus Free 

Locus Map Tweak 

Maps 

My Tracks 

OBD AutoDoctor 

OBD DroidScan 

***OruxMaps 

Street View 

***TetherGPS 

Entertainment

Diode 

Domination 

Facebook 

***FBReader 

FBSync 

Google+ 

Great Big War Game 

HDR Camera 

Lapse It Pro 

***MX Player 

OpenTable 

Pandora 

Paper Camera 

Photoshop Express 

Snapchat 

Songza 

***Subsonic 

***UK & World News 

VLC 

VlcRemote 

WeatherBug 

X-Plane 

Yelp 

YouTube 

YouTube Remote

Utilities

***AdAway 

AirDroid 

AlsaMixer 

AndFTP 

AndroZip 

***AutoRemote 

Battery Extension for DashClock 

Busybox Installer 

CallRecorder 

CalWidget 

Cheetah Sync 

***DailyRoads Voyager 

DashClock Sunrise Extension 

DashClock Widget 

Drive Mount 

***Dropsync 

Dropsync Pro Key 

ES File Explorer 

IP Webcam 

Locale Calendar Plugin 

Locale Execute Plug-in 

***LogMeIn 

***Minimalistic Text 

NFC ReTag FREE (2.4.1)  

NFC TagInfo 

Noise Meter 

Nova Launcher 

***Nova Launcher Prime 

***AndroidLost 

***PushBullet 

Python for Android 

ROM Manager 

Root Explorer 

ShareMyApps 

SL4A 

Screen Timeout Toggle 

Secure Settings 

Sound Search for Google Play 

Speed Test 

SuperSU 

***SwiFTP 

***TapeMachine 

***Tasker 

TeslaLED 

tinyCam Monitor PRO 

***Titanium Backup 

Translate 

Ultrachron Lite 

Unified Remote 

***Webkey

µTorrent 

 

If you were astute enough to notice the lack of flying apps in the above list, you’ll probably appreciate the fact that I’m giving them a separate post in which I can go into a bit more detail on my experiences with them.  I don’t think Android has quite reached parity with iOS when it comes to aviation apps – primarily due to the lack of ForeFlight – but the situation is certainly improving.  More to come on that…

I’ll also try to remember to update this next year with a list of medical apps relevant to students on clinical rotations.  This is another field where the quality of apps is developing rapidly.

Category: Technology | Tags: , , ,

Bluetooth Trigger for Dash-Cam

Last week, I wrote about my experience using an old Droid X as a dash-cam, Russia-style. With Tasker and DailyRoads Voyager, the implementation allowed for completely hands-off operation; recording video only when the car was on.  The only issue was that I had needed to use the power source as the trigger for letting Tasker know when the car was operating.  This was fine until Winter struck here in Michigan, spelling doom for the battery, even with Airplane mode engaged.

I had the capability to run continuous power to the phone from the car’s own battery, but then what would trigger Tasker?  I had thought about trying to make something work with the GPS, or even a relay, but each had its pitfalls or inconsistencies.  Fortunately, Slickdeals offered a solution to the problem when Best Buy held a fire-sale for the Rocketfish Bluetooth Speaker for iPad.  $5 you say?  I’ll take 3!

A bit of dis-assembly later, and I was left with this:

Disassembly required.

Disassembly required.

Now, there is nothing too special about this specific product.  I imagine any Bluetooth audio device – including headsets – would work for the task, provided that it do three things:

  1. After removing the included battery, it must still power up and attempt to connect when USB power is attached.
  2. Pairing settings must be saved when power is removed – despite the lack of battery.
  3. If you decide to leave the battery attached, it must still power down immediately after power is removed, without any button presses required.

 

I suspect many Bluetooth devices will meet these requirements, but I can only vouch for the one I tried.

bt_adapter

Bluetooth audio receiver module, Rocketfish RF-TRSPIPAD

So, once you have the board and are satisfied that it will function properly, it must be connected to a USB car adapter that powers on/off with the car.  Pair the phone up with the Bluetooth device, and create a Tasker profile to start DailyRoads Voyager when a pairing is made.  I have made my profile available below.

 

And it’s as simple as that.  No more dead batteries, and everything works just as well as before.  I noticed no lag at all in detecting the Bluetooth connection, even after days of it being powered off.  It is also worth mentioning that there has been no noticeable impact on the car’s battery, despite the phone running all the time with the radios on (but screen off).

100% hands-off operation, working flawlessly.

100% hands-off operation, working flawlessly.

Android Dash-Cam DIY

Premise

The gadgets in my car have been through a number of iterations, from TomTom running on an old Windows Mobile 6 phone, to a full-fledged, Windows 7 based CarPC complete with touchscreen, GPS and Bluetooth OBD-II data monitoring.  These were fun projects, and may be worth a future post.  Sadly, each had a number of flaws, and have since been replaced with a much simpler android setup.

droid_dvr_profile

My current electronics suite: a Droid X and a Whistler XTR-150 Laser/Radar Detector

Having no better use for my retired Motorola Droid X, I decided to re-purpose it as a dedicated Car DVR after watching one too many YouTube videos involving Russian motor vehicle accidents.  Why does a former superpower dominate this genre of video clips?  Surprisingly, Russia does not top the statistics when it comes to fatal motor vehicle accidents (the Middle East seems to dominate that field) and while they place a respectable 4th in alcohol consumption per capita, this by itself doesn’t seem to explain the need for meticulous video record-keeping of one’s daily commute to work.

Of course, the reason most of us keep records usually has something to do with taxes and the law, and it is no different here.  Apparently, the legal atmosphere on Russia’s roads is very much one of guilty-until-proven-innocent.  With widespread corruption, hit-and-runs, and the general dearth of witnesses, the Dash-Cam is a technological last hope for innocent drivers who are tired of being taken advantage of by accident-staging and bullying.

Here in Michigan, its more just for fun – although you never know when having footage on hand may prove useful.  So, how do you turn an old android smartphone into an automated, HD-video-shooting piece of awesomeness?

Set-up

1) The phone.  Generally, any android phone will do for this, though you will want to be sure the camera placement is in a suitable location so as not to be blocked by the mount.  I’d aim for something that records in at least 720p, such as the Droid X, 1st-gen Galaxy S, or HTC Rhyme/Incredible/Desire.  A MicroSD slot is also highly recommended.

2) Get a mount.  I used this one from Arkon.  It is universal, cheap, and (aside from coming lose on a hot day), dependable.  This may be a better option, depending on where your camera is located.

droid_dvr_close

3) Time to go shopping…at the Play Store.  You’ll need DailyRoads Voyager (free) and Tasker ($6.49).  Optionally, you can add (all free) Orientation ControlNo Lock, MyTracks (and its Tasker plugin), and Quick Boot to log GPS tracks and keep the screen unlocked and in landscape mode.  Rooting your device will unlock some extra functionality with Tasker, but isn’t strictly necessary for the task at hand.

4) Power.  You need a power source from your car to charge the phone.  It must only supply power when the car is on (most outlets do this).  A cheap car adapter will do, or you can get a bit more creative and splice in the wiring so as to conceal the wiring and make things look more professional.

5) Configuration.  Set up DailyRoads to automatically record (I like 5min clips) when launched.  Make sure to go through the rest of the settings and tweak them to your needs and the capabilities of your device.  Ensure the GPS data is logged in .srt format, as this will allow it to be overlayed on the video as subtitles when playing back on your PC with VLC or similar.

For Tasker, you’ll need it to launch DailyRoads (and MyTracks) when the car is powered on (charging), and kill it when power is removed, as well as switch to airplane mode to conserve battery.  Tasker can be a bit daunting the first time you open it up, but there are many guides online that walk you through its array of functions.  In addition, I have shared my profiles here, an you may import and modify them to suit your purposes.

 

That’s it!  Your Android Dash-Cam will now start and stop recording in tune with your driving, no input required.

Issues

car_lower_dash Having had this setup running for a bit over a half of a year, my biggest issue remains that of battery life.  Despite the power savings afforded by Airplane mode, I still find myself having to charge the phone manually about once per week, especially in the winter.  Ideally, I’d just run a cable to the phone that is always powered by the car’s battery – the small drain shouldn’t pose a threat to the car.  However, the issue here is that Tasker depends on the charging status to know when you’re driving. One idea is to use the GPS to measure speed, and have that trigger Tasker.  In my set-up though, the GPS is turned off with the car to save power, and even if I were to leave it on, I’m not confident that it would reliably maintain a fix for days on end.

That leaves Bluetooth and Wi-Fi as the only other input options.  I’m thinking of using a Bluetooth device  powered by the car to trigger the event when it connects to the phone.  When the car turns off, it will lose power, disconnect, and thus Tasker will know to stop the recording.  I’ll try to give both these options a fair shot in the next few weeks, and will report back if successful.

Category: Technology | Tags: , , , , , , , ,

My perspective on Automation

Have you ever worked or studied in a building with automated motion-sensing lights?  The kind that turn off after an absurdly short amount of time, forcing you to get up and make wild gestures, like some Native American performing a rain-dance; begging for electricity to make its return to the cold, fluorescent lights above?

indian-rain-clouds

How about using the “thermostats” in similar industrial settings – the kind that are conveniently placed in every room, yet seem to do nothing when you actually try to use them.  The ones at my school go as far as to paradoxically disobey commands, blowing a cold, air conditioned squall as soon as one dares to increase the setpoint to something above frigid.

Although I have since thwarted both of these sources of daily ire, finding the manufacturer’s  product manuals and methodically crippling the settings of the occupancy sensors that were at the root of their willful disobedience, the behavior of these “smart” appliances epitomize all that can go wrong when implementing Automation of any sort.

My Take

Automation is meant to save time and money, but should NEVER do so at the cost of convenience.  If you find yourself having to perform new or additional tasks after implementing a “smart” system, YOU’RE DOING IT WRONG.  As with most problems involving three different-but-related factors, you can pick any two to improve at the cost of the third. Want something that is both convenient and saves you time?  Expect to pay for it.

Using the automated lighting example, this solution would involve using a motion sensor to turn the lights ON only.  Thus, you would never have to use the light-switch – saving you time. The lights would never turn off when you didn’t want them to, maintaining convenience   Your electricity bill, however, would skyrocket.  It’s just not a perfect world.

Practically, the solution involves balancing the three factors, rather than pursuing just two of them and completely sacrificing the third.  Set a longer delay on the occupancy sensor before it turns off, and crank up the sensitivity to the point at which it can practically see you exhale a deep breath, or blink an eye.  It may still screw up, but not nearly as often.  The electric bill will still be higher, but only slightly.

Category: Technology | Tags: , ,