Phantom Notifications – Moto X4 – Android Pie

Phantom vibrations are a thing. I’ve experienced them before. You feel a vibration in your pocket, reach for your phone, and realise your phone is actually sitting on your desk. But this was different.

After my phone updated to Android Pie, I started receiving notifications, but my watch didn’t indicate anything, and when I looked at my phone, it didn’t show any new notifications. This happened multiple times a day, much to my annoyance.

There were two steps to sorting this out, first figuring out what was causing the notification, and then figuring out how to stop them occuring.

Android lets you put a widget on your home screen that will show you a history of all your notifications. Add a Settings widget, and select Notification log from the list (I learned about this on reddit). Now wait.

Selection Notification log from the Settings widget options list

When you get a notification, you can open the notification log, and view what it was that happened. In my case it was my Download Manager. Which is weird, because it’s telling me about things I downloaded days and weeks ago. Annoying. But at least we know what it is now.

Notification log showing the most recent notifications.

The normal way to turn something off is to open the app, and go to its notification settings. However the Download Manager is a background app, so instead you go to Settings > Apps & Notifications > See all apps, then tap the menu button in the top right, and select Show system.

Get Settings to show you system apps.

You can then select the offending app, and change it’s notifications settings. In my case I just stopped showing notifications for the Download Manager app.

It’s been almost two weeks now, and I haven’t had another occurrence of the phantom notifications. After experiencing them almost daily, this is quite an improvement.

Nike+ SportWatch – DO NOT BUY

tl;dr: The software this watch (and the Fuel Band) requires to work correctly has been discontinued by Nike. The watches are no longer worth anything. Don’t buy one. – link to Nike announcement. If you’re looking for an alternative try the Garmin Forerunner, or even a Huawei Watch.

In 2013 I bought a Nike+ SportWatch. It’s nothing amazing, but at the time it was a well-priced GPS watch which let me track my running and cycling (kind of). It’s major drawback at the time was that the only way to get data off the watch was to sync it with the Nike+ servers by plugging it in to USB and using their proprietary software. This wasn’t a major issue. But now it is.

I’ve since upgraded to a WearOS watch with built in GPS, so I can just run the Strava app. As such I gave my watch to my wife. Recently she plugged it in to upload the data. Trying to sync results in a “Couldn’t connect to NikePlus” message. Clicking help results in a “Forbidden” page access message.

What you see when you click Help in the Nike+ app

Eventually after searching a bit I find out that Nike have decided to discontinue support of the watch. Nike+ Link. For most products this would be okay, you’d still be able to download a GPX file to your PC and upload it to your service of choice. But Nike+ software never offered this feature. And in shutting down their servers they have completely abandoned their customers.

Message on Nike+ support page

To an extent I can understand this. They stopped manufacturing devices in 2015, and can’t be expected to support them forever. What I can’t excuse is that they failed to offer an alternative, when a very simple one exists. The original software effectively downloaded the data to a PC, compiled it into a GPX file and uploaded it to the Nike+ servers (source). They just never made that GPX file available to the user. But this is the perfect opportunity to do this. As opposed to dropping support completely.

What is further concerning is that people continue to sell the product on E-bay without providing warnings about the product’s obvious problem. Likewise on Amazon.

In 2014, Leendert van Duijn and Hristo Dimitrov published a paper titled “Information retrieval from a TomTom Nike+ smart watch“. In this paper they documented some of their efforts to intercept the communication and figure out the comm protocol the watch uses. They made some inroads, but didn’t fully decrypt the data.

Using their guidelines I’ve managed to download what I believe is data from a run, but have no way to decrypt it. I hope someone else is able to figure it out and make this perfectly acceptable watch useful again.

More Particle Internet Button Projects

I posted a few months ago about the Particle Internet Button I’m playing with (link). I’ve created another 2 projects in the mean time.

Adjustable Timer

The first is an adjustable timer. The lights on the Internet Button are used to indicate 30s steps, ranging from 30s to 5min. When it turns on you specify the length of time you want to run it for by either increasing or decreasing the steps. When running the 30s that are currently active flashes. At the end of the time, the Internet Button beeps and flashes red. It can be easily adjusted and reset.

particle timer

Left: select length of time
Right: Timer running

I made this back in November, but actually had a problem with it that I couldn’t figure out. I had intended to post to the Particle forums for help but never got round to it. I had in the mean time uploaded the offending code to Github. I recently reinvestigated the code with the intention of this post, and found that someone else had found my code, and solved my problem, so thanks to Github user mseneshen. Working code can be found here: source

Dice

The second project was a set of dice. Playing Catan and having people complain about how there were no 3s rolled in a game gets old, so why not create a set of dice that keep track of this and tell you facts. Apps are available for this, but then the screen turns off and it becomes a hassle. So I wrote some code to mimic a set of dice.

particle dice

Left: Dice being rolled
Right: Dice have been rolled

To roll the dice you gently shake the Internet Button sideways. The code randomly generates two numbers between 1 and 6, adds them, and outputs them by lighting up the appropriate number of LEDs. To make it easier to read, LEDs are colour coded in groups of 3. The Internet Button only has 11 LEDs, so I if a 12 is rolled, the 11th LED changes colour. Because a 1 is never rolled, I could have used that LED, but it seemed less intuitive. Also, because we play Catan, if a 7 is rolled, all the lights go red.

The whole time the dice are running, a tally is kept of how many times each number is rolled. At any time you can click a button and a distribution is published to the console. I might update this later to automatically graph the data and tweet it, but haven’t tried that yet.

When I first tested the code, I was getting reproducible random numbers, so I introduced a seed from one of the analogue pins which appears to have solved that problem. Because it uses an accelerometer to trigger a throw, when it is on it’s side, gravity is enough to trigger a throw and allows me to get thousands of throws without destroying my wrists.

Some plotted results can be seen here, with actual roll percentage (bars) vs statistical roll percentage (dots).

Code is available here: source

Temperature and Altitude

I recently bought an Adafruit BMP180 that I’m trying to get running with the Internet Button. Will post details once it’s active.

Sony Noise-Cancelling Headphone review (MDR-ZX770BN)

I’ve never spent money on headphones. That’s a lie, when I was like 13 I had a R100 Musica voucher which I used to buy a R150 set of headphones. They were great (nope)! I had to replace the headphone jack, and battle trying to solder those stupid coated wires they love to use in headphones. And then I had to do more soldering when the joints to the speaker itself got damaged. Thankfully after my 3rd year in university I got to stay in a room by myself, and was able to upgrade to a ‘decent’ set of speakers.

Anyway, basically I’ve never bothered about decent headphones. I could never warrant spending R1,000+ on a set of headphones, when my speakers cost less than that. Fast-forward several years, I’m earning a good salary. I have a lot of flying coming up. I despise airplane headphones. Emirates are okay, but Etihad, Lufthansa and Swiss Air are still using headphones that came with Walkmans in the 80s. I figure if I’m going to do this, I’m going to do it right. Then, after much searching, I find out that South Africa has a very poor selection when it comes to Noise Cancelling headphones. Like seriously poor. All I could find in East London were Beats (R4,000), and the guy in store wasn’t sure if any of their headphones had noise cancelling. He did show me a headset with a microphone that had noise-cancelling though, that was nice, totally what I was looking for.

These are not acceptable airlines.

So I decide to las it, stick to my ‘newly’ acquired R250 earphones (I got them in 2012, they’re still going strong, I don’t know how). Then I end up in Germany. Then I find out the allowance work pays is actually higher than what we had been paid out. This means I have ‘spare’ cash. They give us a set amount every day regardless of what we do with, if we don’t spend it, we can keep it, I saw it like a bonus. Time to do some shopping.

Man, the selection on offer was amazing. And I’ve found the same thing in the US. Prices were probably a bit cheaper than in SA. But the biggest difference is just sheer volume of choice. I visited the local Media Markt in Sindelfingen, quite a large store to begin with, and they have a wall covered in headphones. Brands I’d never heard of and more models than I’d ever seen before from brands I did know. So now the problem became choice. I limited myself by budget. But I still had a hard time trying to choose.

After much umming and ahhing, some online research, a return visit and a final count of my spare Euros, I settled on the Sony MDR-ZX770BN. And I am mostly happy.

Actual Review starts

I paid just over Euro 200 for a demo unit. It’s a wireless headset with Bluetooth (BT) connectivity, noise-cancelling (NC), a built-in mic and over-ear design (I can’t handle on-ear headphones). It comes with a volume rocker, and music playback control (all on the RHS earpiece). All of which works beautifully with my Android cellphone and tablet and surprisingly my windows based laptop as well.

Although wireless, it does come with a 1.2m audio cable which you can plug in. it has 3.5mm jacks on both ends, so shouldn’t be hard to replace if it gets damaged. While plugged in the battery will still be used for NC. If the battery dies, you can still use the headphones, just without NC functionality.Plugging the headphones in to charge immediately turns off Bluetooth and NC. But you can continue to use the headphones via the 3.5mm jack while charging, sans NC. In this review, the presenter mentions you can’t turn off the NC while listening with the cable. But you can. By just turning off the headphones.

On the left ear you find the 3.5mm plug and micro-USB charging port, along with the power and noise-cancelling buttons. NC is on by default, with the option to turn it off or ‘retune’ it. It has 3 different settings, and when requested will monitor background noise and select the ‘best’ setting.

Noise cancellation is interesting. When not listening to anything, and NC is on, I can hear a slight white-noise. Turning NC off, turns this sound off as well. Now I understand the concept of NC well enough, and don’t have enough experience with other headphones to know whether this is normal or not. It is an obvious noise however, that I will turn off NC off when listening to podcasts in a quiet environment.My only other complaint of any measure is the power button that I find mildly infuriating. It’s a very wide button, but it only works if you press it dead-centre. So often when I go for it on the side of my head, I’ll press down off-centre, and not be met with the customary ping of a successful power-up. Annoying, but not a deal-breaker.

Besides that I’ve been very happy with the headphones. The insulation is not perfect, but does a good initial job of removing background noise. Sound quality met my expectations and volume capability is far beyond what is needed. Honestly the wireless aspect has actually been a bigger thing for me than the NC. The NC is just a bonus that, in the right situation, works a treat.

I’ve done a fair amount of travelling and rough handling of the headphones over the last 6-months, and they’ve taken it like a champ. Just as good today as the day I bought them.

The speakers also have built in NFC connectivity which lets you link your compatible phone to them without any effort on your side. I didn’t initially get this to work, but retrying it now, it couldn’t have been easier.

As to the battery life, I have been happy with it. Only times I’ve been dropped are at home when I’ve just neglected to charge it. Claimed battery life is 19 hours BT on, sans NC, or 13 hours with NC. 24 hours with BT off but NC on. I don’t think I get that, but I did take a demo unit which could have been on the shelf for months.

I do wish there was an easy way to select which device it’d connect to at startup, as it always connects to the previous device. And if I’m not sure what device that is, it requires some scurrying around trying to find my tablet to disconnect it, or open the proper dialogue box on my laptop. The NFC with my phone does negate this to a certain extent, as I can always connect it to my phone immediately.

Sony also sell the same headphones without the NC for about $100 less.

End Review

The next day, in another shop, I tried on a top of the range set of Bose headphones, oh my goodness they were fantastic. Completely insulated sound, and amazing performance. While it made me a bit sad about my new purchase, their 400+ Euro price tag kept them way out of the range of me even considering them. Maybe one day, probably not.