Tag Archive: Android

Wake: A Sleepy Hotspot

This application for Android phones could several hundred capital dollars at each installation it’s used.

SWEETLab (Sustainable Water, Energy and Environmental Technologies Laboratory) at Portland State University needed a cheaper method to upload data from sensors on hand washing stations, latrines and cook stoves. The tools are deployed in Indonesia and other locations that usually don’t have electricity.

To measure usage, inexpensive sensors on the purification equipment collect data for upload across the internet. Previously, several sensors would wake up at a configured time, along with a GSM modem and wireless router, and send the data for the past 24 hours to a server in Portland. It worked, but this configuration costs about $450. Using an Android phone instead cuts the upfront cost to $180. Data charges to the SIM card in both cases are the same. One would assume the equipment cost can be lowered still as hotspot support comes to cheaper Android devices.

The Wake app is real simple. It keeps the device in airplane mode until the set time, then turns on for a few minutes to be a hotspot for all nearby sensor. This happens each day with the wakeup time and awake duration being configurable. The app uses an undocumented call to the Android wifi API to enable/disable hotspot mode. It also turns itself on at boot and which makes the device into somewhat of a one-trick pony.

Wake forces the device into airplane mode whenever it does not need internet access. We also turn off all notifications. and uninstall any apps that power up the phone up automatically. All this drastically reduces power consumption. The engineers at Stevens Water Monitoring Systems, maker of the wifi-enabled sensors, measured sleeping consumption at 900 mA on our Samsung test device. Using a larger battery or solar charger will support the periodic internet link for many days or indefinitely.

The video below gives an overview of the great work at SWEETLab in more detail. The team at Stevens supports a large variety of water monitoring systems in agriculture, water treatment and other applications.


Apps that use undocumented features possibly unsupported in future releases of Android, or that assert themselves at boot are frowned upon in app stores. Therefore Wake is made available only through Github along with source code. We’re contemplating addition of a feature to allow the Android phone synchronize the clocks of all sensors. Please feel free to offer suggestions for similar or additional functionality in embedded Android apps. There could be many other metrology and control use cases.

Android Inventory Management

Amerifleet moves vehicles across the U.S. They needed a way to use Android devices to track the vehicles in its system as they were received, transported and maintained. Rather than using expensive single-purpose scanners, they decided to create an Android app and allow employees to load it on their personal phones.

After trying a variety of bar code scanning libraries we chose Scandit that supported all the formats used by vehicle manufacturers. This application was developed along with Portland firm Development Now.

Object Recognition SDK

Object recognition on mobile phones is typically done by uploading a picture to a server for recognition while the user waits. This project took recognition algorithms and the image database and put them on device. Applications using the SDK will include games, educational tools and real world browsers.

The performance is impressive. With 1000 images in a database, the typical Android device can make a recognition in about 0.25 seconds. Images can be recognized at a sharp angle or even with the device held upside down. Partially hidden objects are also be recognized. To generate their own database, users can also add their own images from the camera phone.

The starting point for the SDK was some experimental C code for database creation and recognition. It needed to be refactored and made into a native Android library using the Android Native Development Kit (NDK). That library is called by both a PC-based database creation program and by a reference application that SDK users will use as jumping-off point for their own projects.

The SDK is available for educational use and may be released later for commercial development.

Perfect Drink: Become a bartending superhero

drinThis was one of the funnest projects ever to test! Working for Perfect Company, I developed the Android version of an application that shows you how to mix hundreds of drinks. It’s currently sold through Brookstone stores and online. It’s been featured on the Today Show and in Time Magazine.

What’s unique is that the user needs to purchase the hardware — a kitchen scale that connects to your device via an audio cable. The tangible product concept has allowed the product to sell at a higher price than software titles for mobile devices.

The experience goes like this. Browse the recipe book by category or by what you have in your cabinet. Each drink recipe and ingredient includes interesting history and notes. Select a drink to build and you are prompted at each step. As you pour, the screen shows the current level. If you overpour, the rest of the recipe can be scaled and adjusted.

The UI looks great both on phones and tablets and the app makes use of a core module that is common to both the IOS and Android platforms. This core includes both database and scale interface functionality. The Android app can access it via a SWIG interface. The app has been globalized and to date has been translated into 7 languages.

Download for Android.

BIPTech – Technology Solutions for Aging

biptechBIPTech grew out of an assisted living company called Elite Care. The founders, Bill Reed and Lydia Lundberg had created a living environment that minimized hospital visits and maximized resident and family satisfaction. BIPTech was formed to codify their learnings into software. My role was both as an Android development engineer and as COO. I wrote a business plan, marketing material and internal documentation while formulating the implementation plan for the product in its first beta site.

Customer Service Mobile Portal

A large communications company was planning to roll out mobile voice service and needed an app for customers to manage their account and usage. I was part of the Android app team. The project spanned several companies with teams working on the web backend, an iPhone app and a design group.

Agile was used to manage workflow and customer interaction.

The Android team used the project as an opportunity to adopt a boilerplate Android toolset from Ribot that included the following:

Social Proximity

A local startup was creating a way for people to  casually connect via their mobile devices. Some use cases included flirting at night clubs, games at events and apps for the classroom.

The launch app ran in Android and iPhone. I helped with some UI on this.

I helped with backend systems and the developer program. In a pretty rapid ramp up, I used CakePHP, Mongo DB and Amazon Web Services.

Unfortunately the seed funding ran out. Sigh.


One Economy has provided free tax filing service for a number of years. The benefit ensure people entitled to the Earned Income Tax Credit to receive it. Many don’t file and therefore miss the benefit one of the most effective poverty fighting policies in the country. The average refund is $1500.

MyTaxBack was a devised as a way to alert people to how much money they could put back in their pocket by filing. The app was developed for SMS, desktop browsers, Facebook, iPhone and Android. We used JQuery, custom CSS, PHP and PhoneGap.

You can try it here.

As part of the MyTaxBack program I wrote a reusable SMS response tool for text messaging campaigns. We also created a database for tracking users of the various OE programs and media, anonymously, of course, to be able to reconnect at opportune times. For example, if someone files for a tax refund, we would send a text reminder, at about the time she would receive the money. The message would remind her check out options for setting up a bank acount or paying down credit card debt. The vision is to create sort of a CRM for coaching people to help themselves.

Respond to Disaster

I wrote a native Android application called Respond after the Haitian earthquake. When the earthquake hit, you might recall there was a tipping point reached in mobile giving via short-codes. The $10m given was 10 times the previous record. From this, we saw a need for people to have a discoverable app in the stores that pointed them to ways to contribute to relief and get informed in times of crisis without the wait for app store approval. The app content can be instantly updated, as it was after the disaster this year in Japan.

Looking back, this app could have been written with a framework like Sencha Touch on top of PhoneGap, but it was worth a little extra time to dive into Java.