Category Archive: Projects

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.

Volved was developed as a search engine wrapper that would allow users to stay in touch with their favorite cause while also raising revenue for it. You set your browser’s default search engine to Volved. Then when you search, you are transferred to the Volved site which presents results, cause news and ads.

The project was done with WordPress and a custom theme, using PHP, MySQL, Javascript and jQuery.

Unfortunately Volved’s access to Google AdWords was suspended without explanation. We eventually had to give up on the project. This video gives a sense of what the whole thing was about.


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:

Autosked – Service Appointment Optimization for Auto Dealers

makeapptAutosked is kind of a quirky product. The code base started life as a tee time management system for Portland golf courses. A golf-playing exec from a local car dealership asked if software could be modified to manage customer appointments in his lube / oil change bays. And Autosked was born. Many years later, the package is still used at many dealerships where it is viewed as indispensable.

My contribution has been to write two new dealer management system (DMS) interfaces and create a web app for consumers to schedule their own appointments. You can see that at work here at one customer’s site. This is a single page app that uses a lot of javascript and Bootstrap.

The DMS interfaces are a combination of php, Unix shell scripts and C programs.

In addition, I’ve been taking steps to bring more best practices to the development process at the company.

Mobile Search for Your Cause

A mobile application using WordPress, PHP, Javascript, the Sencha Touch and PhoneGap for mobile searching that feeds ad revenue to one’s favorite charity.

The app is a wrapper for Google Custom Search. On those occasions when a user clicks an ad in the search results, part of the resulting revenue goes to the cause she chooses. In addition, that organization can keep her informed about its activities via a news feed in the app. Given that we search often, the connection with one’s cause will be much stronger. The app will also allow givers to the same cause to network with each other and invite others to join.

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.

Older posts «