The Broadcom® BCM47755 location hub is a single-chip device that combines location awareness capabilities with the typical functions of a sensor hub. The combination provides synergistic benefits that cannot be achieved with multiple ICs, such as low power consumption, higher accuracy, reduced footprint and a smaller BOM.
The BCM47755 supports two frequencies (L1+L5), and as a result, achieves lane-level accuracy outdoors and much higher resistance to multipath and reflected signals in urban scenarios, as well as higher interference and jamming immunity.
Furthermore, the BCM47755 incorporates numerous technologies that enable ultralow power consumption in both the location function and the sensor hub function. The device features a low-power RF path, a Big/Little CPU configuration composed of an ARM-based 32-bit Cortex-M4F (CM4), an ARM-based Cortex-M0 (CM0), and is built in a 28 nm process.
https://www.broadcom.com/products/wireless/gnss-gps-socs/bcm47755
I comment on real life performance. I cycle 5 miles to and from work and use Strava to track my ride.
The time between opening Strava and getting a lock on my position is insanely quick. Pretty much instant.
Also, on other phones GPS tracking would to sap my battery. With these activities and typical usage throughout the day I have only gone through 30% of the battery. Took it off charge 15 hours ago.
Related
Most people here probably knows that the higher the CPU clock speed is, the higher voltage the phone needs. Which means higher clock speed results to more battery consumption. This is very simple logic, and sure, in real life practice this theory is proven to be true.
One method that is usually used to gain better performance while not necessarily waste more battery is by overclocking and in the same time undervolting. Because there obviously is a certain level of voltage needed to run a certain clock speed, the normal practice is reducing the voltage level to a bare minimum level where the CPU can still run alright while raising the highest clock speed possible. Reducing the voltage too low usually leads the phone to shut off because there isn't enough voltage for the phone to run.
By following the theories above, we can conclude that to achieve the best performance while still considering battery life, adjusting the proper OC and UV level is needed. This is obviously only talking about hardware affecting tweaks.
We now know that the main factor affecting the overall performance vs battery life turns to be the clock speed itself. Now here comes the ultimate questions.
1) How does the phone handle its clockspeed?
2) Does the voltage level change according to; a) the current clock speed the phone is running at, or b) the highest clock speed set/allowed the CPU to go?
3) Does the highest clock speed set (OC) leads to necessary higher voltage, or does the voltage accostumize itself to the running CPU level?
The most logical answer to number 1 would be that the CPU changes its clock speed according to whatever is happening and needs to be done to achieve the best performance. So the clock speed will go up when there's lots of tasks, and go down again when there's little or nothing to do.
Number 2 and 3 I can't explain, but I hope after someone with enough knowledge explains how voltage level works, we can have an answer to the following case;
IF two same phones clocked differently, one at 1ghz and the other at 1.5ghz run the the same relatively simple task for a long time, will the lower clocked one noticeably save/waste more battery than the other one? Or will they consume the same amount of battery because they would most likely be running at the same clock speed (say, at 200 ~ 600)?
Hopefully we'll have a better insight about overclocking vs undervolting
silentmelodies said:
Now here comes the ultimate questions.
1) How does the phone handle its clockspeed?
2) Does the voltage level change according to; a) the current clock speed the phone is running at, or b) the highest clock speed set/allowed the CPU to go?
3) Does the highest clock speed set (OC) leads to necessary higher voltage, or does the voltage accostumize itself to the running CPU level?
Click to expand...
Click to collapse
I believe one would have to set each speed & undervolt up together if one scales the speed. I just run mine straight up at 1300MHz/1325mV all the time & set up profiles for screen off, charging, etc. I get wonderful speed & battery life.
Example:
1300MHz/1325mV
1200MHz/1275mV
1000MHz/1175mV
/800/MHz/1125mV
etc.
Each phone is different due to the variations in manufacturing.
The only way to really optimise your phone is to try all of the various settings and combinations of voltage/speed.
Set the phone to a given speed, stress test and try decreasing the voltage until you get crashes / errors. Then raise the voltage one level (or 2 if you are a bit paranoid) and that is the stable voltage for that speed.
Rinse and repeat for all other speeds...
Then set profiles in setcpu / pimpmycpu accordingly.
Job done.
---------- Post added at 06:09 PM ---------- Previous post was at 06:08 PM ----------
countrycoyote said:
I believe one would have to set each speed & undervolt up together if one scales the speed. I just run mine straight up at 1300MHz/1325mV all the time & set up profiles for screen off, charging, etc. I get wonderful speed & battery life.
Example:
1300MHz/1325mV
1200MHz/1275mV
1000MHz/1175mV
/800/MHz/1125mV
etc.
Click to expand...
Click to collapse
I think you could lower your voltages quite a bit - eg Mine runs at 1.4GHz at 1.2V
Ok my friend... so... having designed a circuit for a mobile phone myself, I'll try to explain quickly what's the deal (tradeoff) between frequency and voltage.
A CPU/GPU basically is made out of MOSFET's (transistors). Lots of them! They act like capacitors. They have to be turned on and off. At a certain frequency. So, basically they are capacitors being filled and emptied at a certain frequency.
In practice, a capacitor being filled and emptied at a high enough frequency can be seen as a resistor. A variable resistor in fact, as you can see (more or less) here:
http://www.electronics-tutorials.ws/filter/filter_1.html
The thing is, the higher the frequency, the lower the equivalent resistance, because the amount of current keeps getting higher and higher. If the current value gets high enough the very tracks (you can think of them as wires) from the battery to the transistors start having a considerable drop in voltage (the resistance in these wires is supposed to be very low but it's not zero!). And if you have to much voltage drop on the wires the transistors don't get enough voltage to turn on/off.
So there you have it! That's the problem with overclocking. Voltage drop at the tracks (wires) because of increased current. You may also run into heat issues
Now, trying to answer your question, even at the same clock frequency a CPU that is processing stuff will use more energy than one that isn't "doing anything", because transistors aren't really changing state. But a CPU not doing anything at a lower clock frequency will waste less energy than another one not doing anything at a higher clock frequency, because energy is required to drive the clocking circuit itself. So it's very non-linear, you get the picture I hope
LarsPT said:
Now, trying to answer your question, even at the same clock frequency a CPU that is processing stuff will use more energy than one that isn't "doing anything", because transistors aren't really changing state. But a CPU not doing anything at a lower clock frequency will waste less energy than another one not doing anything at a higher clock frequency, because energy is required to drive the clocking circuit itself. So it's very non-linear, you get the picture I hope
Click to expand...
Click to collapse
This. This is the answer I was looking for. Thank you for the detailed explanation!
silentmelodies said:
This. This is the answer I was looking for. Thank you for the detailed explanation!
Click to expand...
Click to collapse
You're welcome!
Also, to complete the answer a bit more, lower voltage also helps with getting less energy consumption, because it takes more charge to "fill" a capacitor to, let's say, 1.3 V than to 1.1 V.
I'm sure this has been addressed already, but it seems to me that higher clock speeds could be ascertained through the use of modulation of the cores. By setting three cores with a full on/off modulation and alternating a single core to push data through the bus cache allowing data to stream unabated through the cores. In theory temperatures should remained in check through the use of proper modulation in much the same way high powered diodes are made to keep from burning. I'm sure through more optimized prefetching and possibly a background running defrag script, data transfer could made even more efficient.
prestige777 said:
I'm sure this has been addressed already...
Click to expand...
Click to collapse
Of course. I was just discussing this with my elderly grandmother as we planted tulip bulbs together in the garden. We decided it was probably way too much trouble for little to no actualized benefit.
prestige777 said:
I'm sure this has been addressed already, but it seems to me that higher clock speeds could be ascertained through the use of modulation of the cores. By setting three cores with a full on/off modulation and alternating a single core to push data through the bus cache allowing data to stream unabated through the cores. In theory temperatures should remained in check through the use of proper modulation in much the same way high powered diodes are made to keep from burning. I'm sure through more optimized prefetching and possibly a background running defrag script, data transfer could made even more efficient.
Click to expand...
Click to collapse
Actually since there are five cores four of them could be modulated. For people who have no clue. The benefits of this would be twice the clock speed at the same or similar power of the stock speed. For example a processor running for one minute at 2600mhz modulation would use the same power as one running at 1300mhz non modulated with the same usage. This is because the processor running at 2600mhz is only on 50% of the time or for 30 seconds despite moving data for one full minute. By alternating cores you allow data to flow uninterrupted which would accentually make this act like a single core processor but at double the clock speeds.
Some background on the Nexus 6 that I've owned for 5+ years. Battery life was fairly stable for ~3 years. There were occasions where I played Clash of Clans while quick charging that the phone got scorching hot. So hot that I couldn't hold it against my skin for more than a few seconds. After regularly doing that for a while, the battery degraded to less than half its original capacity.
I bit the bullet and bought a replacement battery. I made sure to get a good quality one, not a cheap Chinese knockoff. I tested the capacity of the new replacement battery and it was close to the original battery's new capacity. However after about a year of clashing and quick charging the phone to stove-top temperatures, the replacement's battery capacity degraded severely.
My friend's N6 suffered similar battery degradation during a road trip while he was charging it in the car, using map GPS, and playing music. The phone got so hot he had to hold it in front of the AC to keep it running.
I like the screen enough to where I'm considering replacing the battery again. However this time I want to prevent it from overheating. Is there a way to disable quick charging in the firmware? Which firmware aggressively throttles CPU to keep temperatures down?
chefp said:
Which firmware aggressively throttles CPU to keep temperatures down?
Click to expand...
Click to collapse
Not shure if this is what you want, but I implemented power profiles in LineageOS 15.1 and 16.0.
You could use the Effcient or Power Safe profile in situations like you mentioned.
Why not simply use a power adapter that cannot deliver much power?
And not wireless charging - that always creates more heat.
Elektroschmock said:
Not shure if this is what you want, but I implemented power profiles in LineageOS 15.1 and 16.0.
You could use the Effcient or Power Safe profile in situations like you mentioned.
Click to expand...
Click to collapse
That sounds great. My N6 is currently running Lineage 14 and I only see Power Save. Is the Efficient profile better? Power Save makes the phone run quite slow. It'd be nice to have a profile that adjusts performance based on temperature. When it's cool it runs faster, and as it heats up it slows down.
runekock said:
Why not simply use a power adapter that cannot deliver much power?
And not wireless charging - that always creates more heat.
Click to expand...
Click to collapse
I use a standard 10W charger at home (5v @ 2.x A). However when I'm on the road, visiting friends or traveling, I may have to borrow someone's charger, and it might be a fast charger. It would be better if the phone throttled its charge rate based on temperature.
chefp said:
That sounds great. My N6 is currently running Lineage 14 and I only see Power Save. Is the Efficient profile better? Power Save makes the phone run quite slow. It'd be nice to have a profile that adjusts performance based on temperature. When it's cool it runs faster, and as it heats up it slows down.
I use a standard 10W charger at home (5v @ 2.x A). However when I'm on the road, visiting friends or traveling, I may have to borrow someone's charger, and it might be a fast charger. It would be better if the phone throttled its charge rate based on temperature.
Click to expand...
Click to collapse
Oh I can't remenber what the Profiles where on 14.1. It's too long ago and 14.1 is far outdated. Profiles in 15.1 and 16.0 are totaly different to 14.1.
I guess a profile based on temperature wouldn't work properly, but we already have thermal limiting. That means the cpu / gpu is throtteld if a certain temperature is reached.
The charging rate is already based on temperature. But fastcharging is always generating more heat then normal charging. If you would limit it to the same temperature levels then standard charging it wouldn't be fast charging.
Elektroschmock said:
Oh I can't remenber what the Profiles where on 14.1. It's too long ago and 14.1 is far outdated. Profiles in 15.1 and 16.0 are totaly different to 14.1.
I guess a profile based on temperature wouldn't work properly, but we already have thermal limiting. That means the cpu / gpu is throtteld if a certain temperature is reached.
The charging rate is already based on temperature. But fastcharging is always generating more heat then normal charging. If you would limit it to the same temperature levels then standard charging it wouldn't be fast charging.
Click to expand...
Click to collapse
Thanks for the info. Is there any way to disable fast charging via firmware, or is that locked in by the hardware?
chefp said:
Thanks for the info. Is there any way to disable fast charging via firmware, or is that locked in by the hardware?
Click to expand...
Click to collapse
Could be limited in firmware but I guess you have to do it yourself.
Elektroschmock said:
Could be limited in firmware but I guess you have to do it yourself.
Click to expand...
Click to collapse
Would I need to build a custom kernel, or could I send commands to a device in /proc to disable fast charging? I do app development but not familiar with the inner workings of this in particular.
Thanks bud
chefp said:
Would I need to build a custom kernel, or could I send commands to a device in /proc to disable fast charging? I do app development but not familiar with the inner workings of this in particular.
Thanks bud
Click to expand...
Click to collapse
Kernel needs to be changed
This Nexus 6 has been running LineageOS 16 for the past 6 months and the power profile is vastly superior to both Lineage 14 and stock ROM. Great work @Elektroschmock on the improved power profiles.
I'm sure there's a custom kernel out there that will let you manually set the thermal throttle temperature. They really pushed the 28nm process to the limit on the Nexus 6 the clock speed of the CPU is 2.7ghz that probably explains why the phone gets so hot when you play Clash of Clans. I don't know what the Krait 450 cores equates to but most of Qualcomms quad core CPUs on 28nm are maxed at 1.4ghz. I'd set the CPU clock speed to 1.8ghz max and lower the graphical settings in the game that should help your heating issues.
Look guys just this year I realized what's causing the Nexus 6 to overheat soo bad look at these pictures in the link below it's because Google was Soo stupid enough to put the CPU right under the battery actually the battery is right on top of the CPU I'm like why the hell did they built the phone like this. If the CPU was far away from the battery the device would not get sooo hot and causing the battery degrade quickly because of all that heat.
https://www.ifixit.com/Teardown/Nexus+6+Teardown/32877
I've been slacking a bit playing around with other things. It can be hard fully putting the watch thru it's paces inside the BB 14-day return window!
For AOD I will say I was disappointed initially. But I found with lower OPR% (~25% or less) if you crank the brightness above 6 or 7 it's decent. For OPR% in the high 30's and above (lighter & brighter faces, orange/white/silver/etc), I posted a workaround that I'm satisfied with or I'd be returning (otherwise such faces are barely visible in dim mode).
How are people finding the accuracy of GPS, and distance on runs?
What about heart rate accuracy when walking/jogging/lifting or other exercise? I tested vs. a BPM cuff and finger PulseOx, and it seems very accurate when sitting still.
What about BPM accuracy? Do you have to have your arm elevated the same as your heart (as you do with a BPM cuff measurement)? What kind of variability are you seeing vs. a cuff reading?
What about the SPo2 accuracy? How is it when sleeping? I forget the reason, but some fingertip monitors have fits of inaccuracy when sleeping because of signal strength drops.
Any issues with music storage and bluetooth playback?
It's possible to overclock some monitors, and I have seen that it is possible to overclock some phone screens, so would it be possible to overclock the 4a 5g screen? Where would you even begin to do it? If it is possible to get it near 90hz would there be any long term damage?
deadlynoodle said:
It's possible to overclock some monitors, and I have seen that it is possible to overclock some phone screens, so would it be possible to overclock the 4a 5g screen? Where would you even begin to do it? If it is possible to get it near 90hz would there be any long term damage?
Click to expand...
Click to collapse
i was wondering the samething
Not an expert or anything but IIRC the Pixel 5 has a different screen type altogether which allows it to get to 90Hz compared to the P4a 5G
No idea.
Most phones use a MIPI-DSI-2 interface the display. MIPI DSI is a high speed low-voltage differential signaling (LVDS) connection serial interface. It allows the SoC to have a high bandwidth simplex (one way) communication to the display and write to registers within the display. The maximum refresh rate of a mobile display will be limited by one or more of the following:
* maximum throughput of the SoC
* maximum throughput of the display
* number of lanes used (1, 2, or 4).
* greatest common supported "mode" between SoC and display, and hardware connection.
You can easily calculate how much throughput you need to run a specific framerate and resolution, multiply the resolution, framerate ,and color depth (usually 8 bits per color channel, 3 color channels. 2560*1080*90*3 = about 0.75GB/s (gigabytes per second). as opposed to 500Mbps.
You will need to increase the number of lanes or the clock rate. If this phone happens to have all 4 pairs hooked up but is running only 2 of the pairs, and both the screen and SoC have a common supported resolution and framerate that is higher than what you got, then sure! But I really doubt this is the case. Running the clock a little bit faster might be possible at the cost of power consumption but it will more than likely result in bit errors, corruption of the display contents, crashing/hanging, who knows.