![]() |
[Under consideration] 3G Throttler (Battery Saver)
A 2G connection is shown to be less power hungry than 3G. Since the N900 is an 'always on' data device, using 2G as its main source of data for low data intense applications (email/widgets) would make sense. However if you wanted to say surf the internet/stream music, 2G is just too slow.
My idea is: An application that keeps the the default GSM connection as 2G that then switches to a 'heavy data mode' (3g/wifi) when specified applications are opened (eg internet browser, spotify, internet radio etc). This would increase battery life considerably. http://maemo.org/community/brainstor...battery_saver/ It sounds fairly easy to create too.. |
Re: [sandbox] 3G Throttler (Battery Saver)
Great Idea!
|
Re: [sandbox] 3G Throttler (Battery Saver)
I like it! Has anyone done any testing to figure out how much power it takes to initiate the connection and how much data downtime there is when switching?
|
Re: [sandbox] 3G Throttler (Battery Saver)
Yep, would be interesting to see some figures for the consumption using 2G vs 3G and for the connection setup power costs.
Once those are available, this is the type of thing that might be useful for a program like e.g. Shepherd to be able to control. |
Re: [sandbox] 3G Throttler (Battery Saver)
Its indeed a very nice idea and Ive seen this saving atleast 30% of my battery on my t-mobile G1.
However AFAIK the phone would de-register and have to register again with the network when switching from 2G to 3G and vice versa. ( means a couple of sec delay/break ;-) ) I will try to find something more detailed on this. Does anybody have more info ? |
Re: [sandbox] 3G Throttler (Battery Saver)
Quote:
Anyway, it would seem like the easiest way to get started on this would be to toggle your connection based on the phones state: suspend only keeps 2G open but when you bring the phone out of suspense (turn on the screen), it goes ahead and initiates the 3G connection (if available). Go back into suspend then drop the 3G and fallback to 2G. |
Re: [sandbox] 3G Throttler (Battery Saver)
Well I proposed this some time ago:
Switch automatically to 3g only when browsing. Thanks for the brainstorm entry though! |
Re: [sandbox] 3G Throttler (Battery Saver)
Could this be done based on the network traffic instead of the open applications? Something similar to what the kernel does for the CPU. I don't know how is going to work, but I plan to use the N900 without closing most applications so this approach wouldn't fit on my way of using the device.
|
Re: [sandbox] 3G Throttler (Battery Saver)
this would need to turn off your 3G device, while in 3G mode, if you like to swap between gsm modes there will be a new negotiation.
what about real throttling? is the 3G device scalable? is it possible to prevent the 3G from powering up while no connection is available? My 3G eats the battery when I have my phone at dead spots in my apartment, there it cannot establish >2G services but GPRS is still working. So if you scale down the 3G by software and have an automatic fallback to another technology (EDGE, GPRS, you name it) you wouldnt need to negotiate because of switching the network mode to something without 3.xG (GSM+GPRS+2G+3G+3.5G -> GSM+GPRS+2G). This could also help if no 3.xG network is available to reduce the frequency the 3.xG device is trying to establish services. so on the one hand it could be a program managing services and on the other it could be simple settings of the services. the last one I would prefer! Depending on what network requests are pending, Xsec timeout, if after that time the deamon is still touched with new requests, the device decides to powerup 3.xG if active in the current mode. Or it scales down if no intense requests are pending anymore. comments, please |
Re: [sandbox] 3G Throttler (Battery Saver)
Quote:
One addition, though: forcibly keep the indicator on 3G so that the user doesn't always get distracted by the icon changing a few seconds after the screen is activated. The only downside I see is that users who constantly check their calendar would be draining their battery with reconnections. This could be solved with a minimum interval between successive switches to 2G. |
Re: [sandbox] 3G Throttler (Battery Saver)
Quote:
|
Re: [sandbox] 3G Throttler (Battery Saver)
Quote:
Although since Maemo is moving away from Gnome anyway, maybe this could be a user configurable option :D |
Re: [sandbox] 3G Throttler (Battery Saver)
Quote:
|
Re: [sandbox] 3G Throttler (Battery Saver)
We will have plenty of stimuli to play with to determine which one works best as the 3G-initiator trigger. We can pick and choose which one work best depending on how we use it and maybe even combine them together, and have them react differently depending on time of the day, or our location (via gps or gsm location signal):
- Proximity sensor (detect if the device is in our pocket\holster) - Accelerometer (maybe pocket the device upside down to disable 3G). - Keyboard open/close - Light sensor - Microphone (Maybe have a voice control, so you can say "Connect" before taking the device out of your pocket). PS: I think this is doable with shepherd (Attila77's project). |
Re: [sandbox] 3G Throttler (Battery Saver)
Quote:
That would be so annyoing. I'm fine with the current method, where you just enable/disable 3G/Wifi connection via the quickmenu on top of the homescreens. I see no problem with that, being connected to the internet 24/7 is just useful for messenger and skype anyway. Messenger could run with 2G. So your friends telling you in skype chat, that he wants to call you, you enable 3G in quick menu, or maybe with a keyboard shortcut or something similiar and then you call him. I think we need no automatic switching, since manual switching is that easy, but as an optional battery life saving method, it's ofc very welcomed. |
Re: [sandbox] 3G Throttler (Battery Saver)
What about activate it with a shortcut and keep it activated until you switch off your screen and don't turn it on in the next 10 minutes?
Like a "screensaver": Don't use your Device for 10 Minutes and you'll automaticaly fall back to 2G Connection! If you need it again you can turn it on again. But it's not needed to think about switching it off after usage. |
Re: [sandbox] 3G Throttler (Battery Saver)
Quote:
having a user adjustable setting for when does the device switch to 3G and when does it switch back is the best solution so far. But for incoming VoIP calls. If the switch happens in the same delay the user needs to answer the call fine but if it takes longer the call will be dropped. the call negotiation doesnt need 3G, the ringin doesnt as well. Is it possible to keep connections alive or does it need to reconnect when an upscale to 3G happens? Does this depend on the setup how we control the hardware, is it protocol related or even a provider problem? EDGE and UMTS happen within different channels the EDGE uses a time based routine known as TDMA and UMTS is using a code based routine known as CDMA. But thats only protocols the real hit comes to connection, only CDMA2000 and W-CDMA share the same duplexer mode (same connection) with EDGE. At that point it the host network is coming to play! If the negotiation of your host supports channel hopping and the used channels are CDMA2000 and W-CDMA you will be fine but if it doesnt you drop connection any time you switch channels. even if its within 3G technology and the provider doesnt support the hopping it will reconnect. Example: you are somewhere with CDMA (HSPA) and you provider decided to use at the train-station another radio-station type as downtown (because of the amount of people or something) it could happen you drop connection and reconnect while entering to its radio zone, maybe you get more speed, maybe the provider gets more channels (users). so the only chance I see doing it is to scale down the 3G device and keep connected, but edge is already fast enough to do most of the basic stuff, even VoIP should be possible (its not that slow). As I am not a professional, please, proof me wrong if I misunderstood the basics of wireless networking and I will correct it asap. |
Re: [sandbox] 3G Throttler (Battery Saver)
Quote:
I know voice activation can be really geeky, awkward and unnatural, but it's one of the conceptually 'neat' way to trigger the device without having to handle the device and wait it out in front of you. PS: Yes, you can just say "Heck, it's only a 15 second wait." and shower this discussion with morality/behaviorist judgements ;) I'll just preempt that with a figurative sidestep as we're trying to find better ways to enhance Maemo and the N900 compared to other platforms. |
Re: [sandbox] 3G Throttler (Battery Saver)
Quote:
http://talk.maemo.org/showpost.php?p...2&postcount=10 |
Re: [sandbox] 3G Throttler (Battery Saver)
Quote:
I get that it may take some time to connect but personally Id take that 'negative' to increase the battery life. The one downside I can see is as this is a multitasking device you'd want to leave the browser windows open. A timer that switches off 3g after a preset time of low data usage would be required to negate this issue. Would it be hard to 'identify' this state using an application? Does anyone know? If this is indeed possible the programme would have to work like this: 2g data connection default (for background services/agps/widgets) if firefox (a user specified app) opens - turn on 3g if data usage is low - revert to 2g connection if firefox is open and data connection becomes high - switch on 3g The crux of the problem is identifying 'high data' Id assume a widget or push service works in 'bursts' of data? The programme might perhaps have to identify a period of say 3 seconds sustained data access - identify this as 'high data use' and turn on 3G. This would be important as you dont want a constant flicking on and off of 2g/3g. Am I making sense? (Im rather tired!) So we would have 2 branches in the 'road' - 1. data monitor of high/low data (as well as 2g default, 3g on when user specified programmes open) or 2. absolute - if a specified high data programme is open, 3g is permanently on, if closed, its turned off. Which is the preferable? (If option 1 is even possible!) Imagine if this application increased battery life by say 20%, Im sure people would buy it. |
Re: [sandbox] 3G Throttler (Battery Saver)
Quote:
It is a good reason why modern applications should use robust protocols which can tolerate change of IP address and dropped TCP connections, without breaking the application's connection. |
Re: [sandbox] 3G Throttler (Battery Saver)
Quote:
As long as the same laptop had Windows on it this was broken though, because Windows insisted on shutting down any TCP/IP connections if the physical network broke. Which happened all the time with the cellphone, so I had to restart data transfers all the time and got a phone bill which could have bought several laptops. Manager not happy. |
Re: [sandbox] 3G Throttler (Battery Saver)
Quote:
Also, fwiw, TCP/IP doesn't do very well if your connection is down for, say, 30 seconds. It may recover, but it'll sometimes take another 30 seconds to notice after the connection comes back. If your connection is down for 120 seconds, TCP/IP won't recover at all if there is any outgoing data in flight, because it'll time out. That's what I was getting at: Robust protocols can handle a change of IP address and long downtimes. For example, IM protocols. If well done, you just have a pause until it reconnects when the connection is back, and you carry on the same chat rather seamlessly. |
Re: [sandbox] 3G Throttler (Battery Saver)
one thing to consider in all this is that with GSM/GPRS/EDGE you cant do data and voice at the same time. get a voice call while the data stream is ongoing, if your lucky it will cut the data stream and go to call, if your unlucky the caller will be passed to voicemail or get a busy signal.
thats the thing about UMTS/HSPA, it can do data while doing voice (thats basically what a video call is doing), so one can for instance look up a phone number if its a unknown caller. hell, maybe have the system refuse the call if the number is on a database of known sales numbers... |
Re: [sandbox] 3G Throttler (Battery Saver)
Quote:
Quote:
If it couldn't survive a 120 second holdup during data streaming it wouldn't be very useful in a lot of normal, day-to-day conditions. TCP/IP was _designed_ to survive such things. I wasn't kidding when I described my over-the-night resurrection of a data transfer. |
Re: [sandbox] 3G Throttler (Battery Saver)
Note that he said "if there is any outgoing data in flight". Also applies to incoming data in flight.
Personally on N810 I use openvpn connecting to a server of mine. Connections are migrated without breaking from wlan to bluetooth-cellphone-edge/3g when I move about. |
Re: [sandbox] 3G Throttler (Battery Saver)
How about a 3G/2G toggling widget?
|
Re: [sandbox] 3G Throttler (Battery Saver)
Quote:
|
Re: [sandbox] 3G Throttler (Battery Saver)
Quote:
|
Re: [sandbox] 3G Throttler (Battery Saver)
Quote:
More information there : http://en.wikipedia.org/wiki/General...rvice#Hardware |
Re: [sandbox] 3G Throttler (Battery Saver)
Quote:
They doesn't work as well as protocols which detect a failed connection and restart, like IM protocols, but they do work. I use a VPN to reach my server from my laptop for this reason - so that I can continue with SSH connections after the IP connection has broken and restarted with a different IP when tethering through a phone. But I found that it can take an annoyingly long time after the connection is restarted before the SSH will resume. This is not due to SSH, but due to TCP sometimes not responding quickly to a resumed underlying connection, once it's got into slow retransmit mode. Once it has recovered, it's fast again. Now I use GNU Screen on the server and that's much better :) Quote:
The key words are "in flight". Take a peek at this netcat trace: Code:
socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 3 The ethernet cable was removed from the laptop after opening the connection, and before typing "x" and therefore before the write() call. There is no significance to the fact it's using an SSH port, because what happens remotely is irrelevant once the cable is removed TCP tried to transmit the packet containing "x" for about 15 minutes, before giving up and reporting ETIMEDOUT. It took about 15 minutes - I'd mistaken the 120 seconds for something else. Oops :) Here is the reason for 15 minutes: Code:
tcp_retries2 - INTEGER If you don't have data in flight, and no keepalives or applications timeouts, this doesn't happen - you can indeed resume any amount of time later. That's a basic property of TCP/IP. But most application protocols do, of course, transmit something from time to time - otherwise they wouldn't be able to tell the difference between a temporarily lost link and one which is permanently gone, to be cleaned up. |
Re: [sandbox] 3G Throttler (Battery Saver)
Anyone interested in this now the N900 is out? It would be so much better than toggling it yourself. It just needs to toggle to 3G when certain apps are open/opened then toggle back when specified apps are closed..
|
Re: [Under consideration] 3G Throttler (Battery Saver)
+1 to that ^
|
Re: [Under consideration] 3G Throttler (Battery Saver)
I was thinking of this app ever since I found out that you could toggle between 2g/3g connections (and that was the first day I got the phone when it was launched at the uk nokia store)
I think this is an excellent idea. Do developers really need convincing that such functionality is really worth consideration at all?.....of course it is..... come on now guys or girls....it'll be an absolute godsend! The phone should default to 2g mode and when the browser is activated then it automatically switches to 3g. When the browser is closed there should also be a timeout then the phone reverts back to 2g mode. some other fancy options should include that when a particular application is started, should it need to retrieve data from the internet, then a setting should allow the user to again automatically switch to 3g. A tyical application which would be a good candidate for this functionality would be something like a stock trading program which constantly looks for live data feeds. C |
Re: [Under consideration] 3G Throttler (Battery Saver)
I think that's all covered by Shepherd.
|
All times are GMT. The time now is 09:15. |
vBulletin® Version 3.8.8