Ring app on Android (3.40.0) suddenly became a background data hog

In the month of May, the ring app cost me $40 (I pay $10 a GB for cellular data).

Having the ability to see what is going on around the house when I am away is worth spending some mobile data on…in March it cost me 54MB, and in April it cost me 318 MB (54 cents and $3.18 cents respectively). However, that is FOREGROUND data, that is actively used when I am streaming data in the app. Sometime after May 5th, the ring app started to download a LOT of background data. In fact, for the May5-June 4th month, I used 91 MB of foreground data, and the ring app used 3.95 GB of background data (that’s $39.50 it cost me).

[Soon after taking these screenshots, I disabled “Background data” for the ring app, which prevented it from using more excessive amounts of (cellular) data and costing me money.
Ring app using 4 GB of background data in a month

My current version of the ring app is 3.40.0, running on Android 11 on a Pixel 4A phone.
After I got the $40 larger than I was expecting bill in June, I quickly checked to see what was using all of that data, and found that the Ring app had used 1.27 GB of data in only a few days. To put that in perspective, it was using more data than Pokemon GO, which is usually my highest data using application.


The problem is not limited to cellular data, the ring app has become a massive data hog when on wifi as well (but at least since my wifi connection is not metered, it doesn’t cost me anything). Every so often when I am at home I will use the ring app to watch the video feed from a camera if I get a motion alert and don’t want to get up to look out the window. In March and April this usage amounted to around 1 GB and 1.7 GB of wifi data respectively.   But, in May, the ring app used 61 GB of wifi data!
I did not stream more video in May than in previous months, so this is primarily background data usage by the app.
Ring using 61 GB of wifi data

If I had to guess, I suspect that the ring app on android has started automatically downloading videos of motion that occur, EVEN IF THE USER DOES NOT WATCH IT! Perhaps this a feature designed to make the app more responsive if the user selects the notification to view the video stream, but when I talked with technical support, they could not offer any explanation for why this was happening or how to disable the high data usage.

Update – Ring app 3.41.0 appears to have fixed the issue

After the Ring app upgraded to version 3.41.0 on Android, I re-enabled background data and kept a close eye on it for a few days. Including a few times I was away from wifi on cellular data, the data usage was much more reasonable, so it appears that the ring developers have fixed whatever the issue was.

2.47 mb of data used over a few days


How to extract depth images from Pixel 4 / google camera Android phone Portrait images

I have a Pixel 4 android phone which can take “Portrait” images that use a depth map to “blur” the background, focusing on the foreground.

I also have a Looking Glass Factory Portrait holographic display which can display holographic images.

Currently, the HoloPlayStudio software (version 0.3.5 beta) that comes with it only natively supports iPhone portrait photos, but will import RGB+D photos, so I need to extract the depth image (and the original image without the blurred background)

I want to extract a depth map from my android photos so that I can (manually) create RGB+D photos (which have a regular jpeg image next to the corresponding depth map).

This website makes it easy to see/download the different layers embedded in the Pixel 4A “Portrait” mode jpeg image: https://www.photopea.com/

Download the original image and the depth map, glue them together with the depth map on the right and you have an RGB-D image suitable for HoloPlayStudio.

You can also extract the original and Depth Map images using the exiftool.

The command that I found worked was suggested by Phil here:

It extracts the 2nd trailer image, which is the depth image:

exiftool input.jpg -trailer -b | exiftool - -trailer -b > dept.jpg

Incidentally, the FIRST trailer image is the non-blurred original image…

exiftool input.jpg -trailer -b > original_image.jpg

So if you extract the trailer from the original image, it will be the depth map, and you won’t have to chain exiftool together on the command line as above…

exiftool original_image.jpg -trailer -b > depth.jpg

Completely unrelated to extracting depth images, but possibly needed to create holograms from a linear slide movie is the following ffmpeg command that will extract 3 seconds of a video starting at the 2 second mark into PNG image frames:

ffmpeg -ss 00:02 -i <input> -t 00:03 filename%05d.png

Judging the balance of cells within a battery based upon ending charge profile

My S-10 EV conversion has a battery pack made up of Nissan Leaf modules. I am using a mini-bms system which has a per-cell alarm, but does not report per-cell voltages and also does not do a great job keeping the cells balanced.  To check individual cell voltages, or manually balance cells, I need to pull a few pins and lift up the tilt bed on the back of the truck.  But it is possible to determine when cells in the battery are no longer well balanced based upon the power draw when the ending voltage is reached. You can see this most easily by looking at the charge profile graphs (provided by my JuiceBox EVSE).

When the cells are not balanced, some cells are at a lower SOC than others when the ending voltage is reached, which results in the entire pack drawing more power (in this case, charging ended when the max voltage cutoff was reached, but the pack was still drawing 3,000 watts.

After balancing the cells, the normal charging profile looks like this:

As you can see, the amp/power draw slowly tapers off as the max voltage is approached, and the pack is drawing less than 1,000 watts when the cells are balanced.

I use these end-of-charge graphs to determine when it is time to pop the back of the truck and manually check/balance individual cells. [I still have the mini-bms units to automatically stop the charger if any cells voltage goes too high, or alarm if any cells voltage goes too low.]

September 27th 2020: Orange County Florida COVID-19 Report

It’s September 27th, 2020, how is Orange County Florida doing with COVID-19?

The rate of decline in new cases had grown sluggish at the end of August, plateaued and then had a slight rise in September.  Orange County is averaging 147 confirmed new cases per day over the last two weeks, compared to an average of 14 new cases per day in the first two weeks of April, so the number of people infected each day is still about 10 times higher than in April.

(You can ignore that 7 day hump at the beginning of September….a large lab reported a backlog of positive tests all at once.)
Continue reading

Getting IOT devices / Geeni Smart Plugs working with OpenWRT / dd-wrt

After moving my wifi router to the OpenWRT firmware, my Geeni smart powerstrips were authenticating to the wifi router (I could see their MAC addresses) but not communicating properly (the device name was a question mark, and nothing could communicate with them).

The secret was to turn off WMM mode (Wireless Multi Media) and then they all immediately started working again.

The firewall gets in the way of HP printer device discovery, so you may need to assign the printer a specific IP address and then manually add the IP address to your clients.

HP Device Manger -> Setup -> Network/Ethernet/Wireless network. Then click Advanced Options, choose Manual Discovery, and type the IP address.

Insulation & heat loss of my DIY cooler

My DIY TEC Cooler has an interior volume of 480 cubic inches (6x8x10) and an interior surface area of 376 square inches (2.61 sq ft). It has an exterior volume of 1.55 cubic feet (12x14x16) and an exterior surface area of 1168 square inches (8.11 sq ft).  It generally has 3 layers of 3/4″ poly-iso insulation (R5) plus a small amount of one-part urethane expanding foam (say, R2?) in some areas, for an estimated R 17 insulation value (sorry, I’m using imperial units here as my insulation comes with R values….)

To calculate the amount of heat that will escape from inside my cooler to the outside (the amount of heat loss I need to counteract with the TEC system to maintain a set 34°F temperature on a 77°F day), we need to know the thermal delta between the inside and outside of the fridge.  (I’ll use 34°F for a good refrigeration value, and 77°F for the exterior temperature).

I’ll also use the average value of the interior and exterior surface area ((2.61+8.1) / 2) = 5.36 sq ft for this calculation. As a reminder, the equation to calculate heat loss in BTU/h is:

equation for calculating heat loss in btu/hours

In imperial measurements:
[5.36 * (77-34) ] / 17 = 13.55 BTU/h

13.55 BTU/h  divided by  3.41 = 3.97 watts

Using the SI system with things translated appropriately gives similar numbers:
0.49796 (25-1) / 2.99 = 3.99 watts

Of course, the above numbers may be completely incorrect, so I also did an experiment after building the cooler:

At 4:45pm I placed 3 refrigerated 12oz (355ml) cans of generic Dr. Pepper in my homemade DIY cooler with a temperature of 3.8°C.  [The active TEC elements were turned off, as I was just testing the insulation properties.]

At 4:21am the next day (11 hours 36 minutes later, rounded to 11.5 hours hereafter) I opened the cooler and one can, measuring the interior temperature at 14.6°C. [we’ll assume all three cans gained the same amount of heat…I only wanted to drink one can.]

So, 36 fl oz (1065 ml) of (basically) water gained enough energy to raise its temperature 10.8°C in 11.5 hours. The specific heat of water is 4.184 J/g-K. 1065ml = 1065 grams of water, or just about 1 kg. Nice how that works out.

4.184 J/g-C * 1065 g * 10.8 C = 48124.3680 Jules = 48.124 kJ = 0.0134 kWh = 13.4 Watt/hour

13.4 wh / 11.5 h = 1.1652173913 watts of continuous energy transfer from the outside to the inside of my cooler (heat gain, or cold loss).

You might notice that the calculated 3.9 watts is not equal to the observed 1.16 watts.
The main reason for this is that the interior of my cooler was never at 34 °F. It started at 3.8°C (39°F) and then raised up to 14.6°C (58°F) over 11.5 hours. It spends more time a higher temperatures, as the rate of heat transfer decreases as the thermal delta decreases. [Also, the ambient temperature was closer to 71.6°F, so the difference between the interior and the exterior was significantly smaller than in my previous calculations.]

For example:
[5.36 * (71-39) ] / 17 = 10.09 BTU/h / 3.41 = 2.95 watts
[5.36 * (71-58) ] / 17 = 4.099 BTU/h / 3.41 = 1.20 watts

However, the integration of the above numbers over 11.5 hours would still give me more heat loss than I observed. So either my experimental measures had a flaw, or the R value of my cooler is higher than the estimated 17.

However, as the results are of the right order of magnitude (4 watts vs 1.1 watts), I’m happy with my calculations and the experiment, and feel that the 4  watts of cooling power needed to maintain a 34°F interior temperature is a good upper bound on the performance needed by my TEC system to maintain temperature.

Moto X4 power button failure (part 2)

Remember how my Moto x4 had a power button failure after 10 months of ownership? Well, the replacement x4 phone that Motorola shipped me had its power button fail in the same way after only a month of usage. Luckily, I still have a month of warranty coverage, and their customer support representative again waived the $24.99 “Premium” fee to ship me a replacement phone before I ship them back the broken one (with a $200 deposit.)

However, I’m not at all impressed with the hardware quality of the power button on this model. I think I will have to just set the screen timeout to a small number of seconds and stop turning the phone off with the power button. (It already has a swipe to activate feature so you don’t need to use the power button to turn it on…)