Keeping a water damaged Moto 360 limping along

I still use my Moto 360 (the first and best version because of the lugless design). It’s great for never missing notifications when my phone isn’t right next to me, setting reminders and controlling music. I keep my phone on silent so sometimes its easy to miss texts and calls. A while ago I took it swimming with me and it started acting strangely. It’s rating is IP67 (dust tight and water-resistant for up to thirty minutes in 1 meter of water) but it started to behave as if it was charging all the time. This means the screen was on permanently no matter what settings were used (cinema mode, raise to wake and ambient mode). This drained the battery really quickly so the watch became useless. After trying all the usual tricks like putting it in rice, in a cupboard with a dehumidifier and putting it in rice in a cupboard with a dehumidifier it still thought it was always charging. After searching for fixes I found that because it has Android 6.0 it’s possible to send an adb command to it that simulates unplugging the charger:

adb shell dumpsys battery unplug

This command is for testing things like doze mode whilst still being attached to a computer fro debugging. This finally made the Moto 360 turn its screen off, preserving the battery and making it viable again. Unfortunately there are some drawbacks:

  1. It doesn’t obey the raise to wake setting. The screen has to be touched before it turns on
  2. The battery level is not reported correctly in the pull down menu
  3. The little lightning charging indicator is still permanently displayed

To get around drawback number 2 I made a simple watch face that uses the battery level API in Android to show the correct battery level. The source code is in github.


mARsquerade Non-cardboard mode added

I have added a monocular branch to the mARsquerade project in github. It allows the app to be used without Google Cardboard i.e. like a camera app. There is take picture button which saves images to /sdcard/Pictures/mARsquerade but it doesn’t save the masks on top of the photos yet and there is no gallery built into the app. I’ve got these features on my to do list. When the app first starts it asks if you want to use Cardboard or not. The monocular mode can only be used in landscape for now.


l spent some time on an interesting side project towards the end of last year. The theme for the work Christmas party was a masquerade ball. Instead of creating an ordinary mask I thought I’d do something more Android. Using the following items I created something called mARsquerade:

  1. Google cardboard with a hole cut in it
  2. Bluetooth selfie stick
  3. A borrowed Samsung Galaxy Note 4
  4. An android application that uses the cardboard SDK and camera
  5. A Weetabix box
  6. Sellotape
  7. Gold spray paint

Simply put it’s a face detecting augmented reality rig that can take photos:

eye mask

The face detecting part uses smile detection to put a sad mask over a frowning face and a happy mask over a smiling one. Like this:

happy sad

The results can be disturbing! I questioned my own sanity a couple of times during development! I ran out if time to really finish off the hardware part so it looks a bit tatty. Originally I tried two Note 4s for a crazy stereoscopic setup but it was just too heavy and so would have required some sort of reinforced neck brace for support. The extendable selfie stick was really handy for taking photos from a high vantage point. The stick uses Bluetooth but luckily it just sends an enter keystroke to the phone rather any kind of proprietary Bluetooth command or something. I used the cardboard trigger to toggle on the flash as a torch. Useful for finding your way home after a hard nights mARsquerading. I put the code in github if anyone wants to take a look. It’s not in the Play Store because its pretty niche and requires a cut up Google Cardboard. Obviously it works best on a Note 4. The 1440p screen and decent camera make it work well. Running it on a device that doesn’t support a good square preview size (like the Nexus 5X) means a distorted camera view. WARNING: after a while the device seems to get a bit hot! Previewing the camera, distorting it for cardboard and detecting faces is probably a fair amount of work!

Paperless List unpublished from Play Store

The Tesco API has been experiencing some problems lately. On around 26th October its SSL certificate expired. They fixed this last week but anonymous login was broken. Anonymous login allows Paperless List to access data on Tesco products for sale without the need for a account. I learned today from the Tesco Labs team on Twitter that anonymous login has been disabled because it was being abused (not by me but presumably other app developers). This means most of the functionality of Paperless List doesn’t work so I removed it from the Google Play Store. Existing users can still use the app but it will only work with manually added (i.e. not Tesco) products. It’s a shame because I have been working on a material design update for the app for a while. It looks like this:


Paperless List may be resurrected with a login screen in order for it to work again with the Tesco API.

Edit: Tesco have a new API with anonymous login but it has less features. I am exploring the possibility of using it and keeping tabs on its development

Paperless List V2.91

V2.91 is a bug fix release of Paperless List. I made some plumbing changes in V2.9 that introduced some bugs, especially on older Android version like 2.3.

  • Exiting during search crash fixed
  • Editing manual items on older Android versions fixed
  • Search re-submitting on orientation change fixed
  • Progress not visible in action bar on older Android versions fixed

Paperless List V2.9 out

Paperless List V2.9 is now out in the Google Play Store. I added a new feature to display nutritional info:



Just long press on an item in the list, search results or favourites and select the “Nutritional info” option. Values for energy per item and per 100g are shown. The real value in the feature is the traffic light system. Based on FSA guidelines this is a simple way to show if a product has low (green), medium (amber) or high (red) levels of fat, saturates, sugar and salt. Unfortunately, Tesco doesn’t have nutritional info on every product but hopefully they’ll add more in future. I also fixed a bug with scanning items on the list screen. It wasn’t adding them immediately because you had to navigate back out of the list and go back in to see the scanned item.

Paperless List V2.7 and Pro no more

I have just released Paperless List V2.7 to the Google Play Store. Only the free version has been updated because soon I will be removing the Pro version. By the end of the week it will be gone. All my apps from now on will be free and also ad free. That is unless I need to pay for hosting a web service or something. Here is the change log for V2.7:

  • Removed adverts
  • Fixed clear the favourites list

Paperless List V2.6 out

Paperless List V2.6 is out. I managed to add more features but also optimise the app to use less memory:


Here is the change log:

  • Re-order the shopping list and favourites using drag and drop (use the handle on the left of the item)
  • Flattened out design. The action bar is now just white and that nasty dark grey gradient Android uses for the default background is now just black.
  • Using less memory. This was done as part of the changes for list re-ordering, using less views in the lists and following some Android best practices. The savings are around 18% memory for the same number of products in the shopping list (according to dumpsys meminfo)
  • Enabled spelling suggestions in the keyboard for manually adding products
  • Bug fix: performing a cross off gesture is no longer possible once the long press context menu appears
  • Bug fix: £ char not encoded correctly in email sharing