Re: Charging Neo Freerunner via USB port
Good news, you're likely wrong :) Don't project the current draw when on the charger to when on the battery. It's very normal for the charger portion of a PMIC to be extremely in-efficient. I typically see less than 50% efficiency on chargers. The power system will be optimized for running off the battery, but charger power is usually seen as a free an infinite resource for the phone. It's not worth the cost and area to optimize the power usage from the charger, so it's almost never done. --Steve M On Sat, Apr 19, 2008 at 9:24 AM, Marco Trevisan (Treviño) [EMAIL PROTECTED] wrote: Mhmhm... Does this mean that the freerunner uses about 100mA to stay on standby? And... Then that in about 12 hours of simple standby its battery will be out? :o I really hope I'm wrong... -- Treviño's World - Life and Linux http://www.3v1n0.net/ ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Re: Charging Neo Freerunner via USB port
Hello Joachim. Thank You for the information. On 4/19/08, Joachim Steiger [EMAIL PROTECTED] wrote: the id pin is connected directly to pin9 of the pmu (adcin1) in addition to that there is one resistor of 100k(1%) to gnd and one of 39k(1%) to pin8 of the pmu (accsw) now everyone should be able to do the math while looking at the pmu datasheet. ;) I am looking at the PMU datasheet, and I just want to verify Your information. In [EMAIL PROTECTED] 14 (page 119 in PCF50633 user manual), accsw is connected to adcin1 with a 100k resistor and adcin is connected to gnd with Racc. Is the information I got from You correct? I will look at the current kernel driver to see how it is implemented, but I assume ratiometric measurement is used (ref. PCD50633 user manual @ page 102). best regards, Flemming Richter -- Please don't send me Word or PowerPoint attachments. See http://www.gnu.org/philosophy/no-word-attachments.html Join the FSF as an Associate Member at: URL:http://www.fsf.org/register_form?referrer=5774 ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Re: Charging Neo Freerunner via USB port
Michael Shiloh wrote: Andy Powell wrote: On Friday 18 April 2008 18:34, Michael Shiloh wrote: The Neo Freerunner can charge most rapidly when it can pull 1 Amp from the power supply connected to the USB socket. However, not all chargers or computers can provide this much current. It might seem like a dumb question, the the charger provided can source 1Amp, right? :) Not a dumb question at all. I do say this further down, but perhaps should elevate it. According to this [1] (final pages) it should provide 2.0A. [1] http://tinyurl.com/5sh68w -- Treviño's World - Life and Linux http://www.3v1n0.net/ ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Re: Charging Neo Freerunner via USB port
Michael Shiloh wrote: When the Neo Freerunner detects that power has been provided at the USB port, it will attempt to draw only 100mA. This minimum is mandated by the USB standard. This amount of current is insufficient to both power the Neo Freerunner (or even just its backlight) and to charge the battery, and therefore the battery will not be charged. (The battery discharge rate, however, will be slightly lower, as the supplied 100mA will be used to augment the battery.) (When a charger is connected to the USB port, the Neo Freerunner automatically powers up. Thus, if charging at 100mA is desired, the Neo Freerunner must be shut down after the startup process has completed.) Mhmhm... Does this mean that the freerunner uses about 100mA to stay on standby? And... Then that in about 12 hours of simple standby its battery will be out? :o I really hope I'm wrong... -- Treviño's World - Life and Linux http://www.3v1n0.net/ ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Re: Terminology (was: Charging Neo Freerunner via USB port)
Good idea to put this straight. In what mode would you expect listening to audio would be? Best Regards, Jens On Sat, 2008-04-19 at 14:37 +0100, Michael 'Mickey' Lauer wrote: Guys, you really need to set the terminology straight here otherwise we spread FUD. Feature phones only differ between talk time and standby time. For us, it's a bit more complicated, since we have more modes. Can we agree on the following: usage time = CPU is powered on, lots of peripherals have power and you're actually talking and doing lots of things. standby time = CPU is powered on, but the display and most peripherals are off to save power. You are doing something that requires the CPU to be on though. suspend time = CPU is powered off. only gsm (and RTC and some other wakeup sources) are listening for events. Now I _personally_ expect the following from FreeRunner: usage time = 2 to 8 hours, depending on what you're actually doing standby time = 10 hours suspend time = 2-3 days ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Re: Terminology (was: Charging Neo Freerunner via USB port)
2008/4/19, Michael 'Mickey' Lauer [EMAIL PROTECTED]: Feature phones only differ between talk time and standby time. For us, it's a bit more complicated, since we have more modes. Can we agree on the following: usage time = CPU is powered on, lots of peripherals have power and you're actually talking and doing lots of things. standby time = CPU is powered on, but the display and most peripherals are off to save power. You are doing something that requires the CPU to be on though. suspend time = CPU is powered off. only gsm (and RTC and some other wakeup sources) are listening for events. Why can't we keep the existing terminology? I think what you refer to as 'suspend time' should really be called 'standby time', since it is how most people think of it - how long will the battery last when the phone is not being used. What you call 'usage time' I think we could keep calling 'talk time', since it seems to me to be the same thing, and is in common use. What you call 'standby time' doesn't seem like a very important state to me, I would think that for most people the phone would either be used (what you call 'usage time'), or in your pocket or whatever, when you want maximum battery time, what you call 'suspend time'. Maybe we could call it 'music playback time', since that seems to be one usage of this mode. /Erland ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Re: Charging Neo Freerunner via USB port
Great summary Michael, and a good discussion. It would be nice to see the ability to support other fast chargers in the future. That is one of my pet peeves about cell phones is that it seems every single company(and often even every model made by that company) has it's own specific charger which is incompatible with anything else. Michael Shiloh wrote: In summary, the Neo can charge at 3 different rates: 100mA, 500mA, and 1A. Just to be absolutely clear, are these 3 rates hardwired into the circuitry? Or might it be possible in the future to support(through only software changes) some charger that has for example a max rating of 750mA, and get the maximum output from it. The discussion up to this point seems to indicate that the best that could be done with this theoretical charger would be 500mA. I suppose it doesn't make a huge difference, but something I'd like to know for sure. - Hans Loeblich ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Re: Terminology (was: Charging Neo Freerunner via USB port)
On Sat, Apr 19, 2008 at 11:46 AM, Erland Lewin [EMAIL PROTECTED] wrote: 2008/4/19, Michael 'Mickey' Lauer [EMAIL PROTECTED]: Feature phones only differ between talk time and standby time. For us, it's a bit more complicated, since we have more modes. Can we agree on the following: usage time = CPU is powered on, lots of peripherals have power and you're actually talking and doing lots of things. standby time = CPU is powered on, but the display and most peripherals are off to save power. You are doing something that requires the CPU to be on though. suspend time = CPU is powered off. only gsm (and RTC and some other wakeup sources) are listening for events. Why can't we keep the existing terminology? As you're going to state here, not everyone agrees on what the existing terminology means. You can call it whatever you want as long as everyone using the term understands what the terms mean. Mickey's terms clear up the ambiguity. I think what you refer to as 'suspend time' should really be called 'standby time', since it is how most people think of it - how long will the battery last when the phone is not being used. That makes assumptions that we can't be sure of yet. We should work to clear up those assumptions first. What you call 'usage time' I think we could keep calling 'talk time', since it seems to me to be the same thing, and is in common use. Broadcasting a GSM signal uses more power than playing Sudoko so the times will be different. I don't think either term here really clears that up. How much talk time does the Freerunner currently get? This means while broadcasting GSM signal. How much usage time can the Freerunner get, for instance playing sudoku? What is the frame in between? Could someone expect 10 hours of sit on my desk while I sleep and have the phone do nothing? Does this drop to 6 hours when playing music via a bluetooth headset (since it's processing audio and broadcasting over BT). What battery life could someone expect while making a call from full charge to battery death while using a Bluetooth headset? Perhaps a battery life FAQ might make more sense... I'll see if I can't start one. What you call 'standby time' doesn't seem like a very important state to me, I would think that for most people the phone would either be used (what you call 'usage time'), or in your pocket or whatever, when you want maximum battery time, what you call 'suspend time'. There's a critical difference, but exactly how requires more information. The GTA01 currently can't accept incoming calls while in suspend, so for the average person suspend is useless since suspending does NOTHING except essentially decrease boot time - it has the same functionality as turning the device off and uses more power. Can the Freerunner resume on incoming call? If so, someone could suspend the device and toss it in their pocket/purse, reap maximum battery life AND keep the primary functionality intact. If it can't resume on incoming call, I'd agree it's essentially useless. Maybe we could call it 'music playback time', since that seems to be one usage of this mode. /Erland ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Re: Charging Neo Freerunner via USB port
That's also something I'd like to know as my Minty Boost supposedly does up to ~250 mA and I'd like to use that much if possible. The Neo 1973 doesn't have the necessary hardware to detect chargers, though, or does it? Ortwin On 4/19/08, Hans L [EMAIL PROTECTED] wrote: Great summary Michael, and a good discussion. It would be nice to see the ability to support other fast chargers in the future. That is one of my pet peeves about cell phones is that it seems every single company(and often even every model made by that company) has it's own specific charger which is incompatible with anything else. Michael Shiloh wrote: In summary, the Neo can charge at 3 different rates: 100mA, 500mA, and 1A. Just to be absolutely clear, are these 3 rates hardwired into the circuitry? Or might it be possible in the future to support(through only software changes) some charger that has for example a max rating of 750mA, and get the maximum output from it. The discussion up to this point seems to indicate that the best that could be done with this theoretical charger would be 500mA. I suppose it doesn't make a huge difference, but something I'd like to know for sure. - Hans Loeblich ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Re: Terminology (was: Charging Neo Freerunner via USB port)
On Sat, Apr 19, 2008 at 10:46 AM, Erland Lewin [EMAIL PROTECTED] wrote: What you call 'standby time' doesn't seem like a very important state to me... I would disagree that this state(regardless of what you want to call it) is unimportant. I think that, while this may be true for the majority of *closed* phones on the market, the open-ness of the freerunner will allow this area to grow significantly. Seeing it as not simply a cellphone, but more in terms of a general computing device with great connectivity(GSM, wifi, GPS, bluetooth, etc.), will allow for uses that might not be completely obvious at the moment. I think as the software is further developed, this sort of state will could more and more important. I do however agree with your point about the generally accepted meaning of Standby time. I think most other phones talk about battery life in terms of talk time and standby time as their two modes of operation. -Hans Loeblich ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Re: Terminology (was: Charging Neo Freerunner via USB port)
2008/4/19, Kevin Dean [EMAIL PROTECTED]: Can the Freerunner resume on incoming call? If so, someone could suspend the device and toss it in their pocket/purse, reap maximum battery life AND keep the primary functionality intact. If it can't resume on incoming call, I'd agree it's essentially useless. My impression from the mailing list discussions is that the Freerunner can resume on an incoming call (which is how a reasonable, or very good, 'standby time' has been achieved. ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Re: Charging Neo Freerunner via USB port
Marco Trevisan (Treviño) wrote: Michael Shiloh wrote: Andy Powell wrote: On Friday 18 April 2008 18:34, Michael Shiloh wrote: The Neo Freerunner can charge most rapidly when it can pull 1 Amp from the power supply connected to the USB socket. However, not all chargers or computers can provide this much current. It might seem like a dumb question, the the charger provided can source 1Amp, right? :) Not a dumb question at all. I do say this further down, but perhaps should elevate it. According to this [1] (final pages) it should provide 2.0A. [1] http://tinyurl.com/5sh68w True, but we only use 1A. I should confirm this, but I took the 47K Ohm resistor to mean able to source at least 1A, meaning that it would be possible to ship a different supply and not violate this. I know of no plans to replace the supply with one that can only source 1A, but that is a possibility. I'll look into this. Michael ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Re: Charging Neo Freerunner via USB port
Hans L wrote: Great summary Michael, and a good discussion. It would be nice to see the ability to support other fast chargers in the future. That is one of my pet peeves about cell phones is that it seems every single company(and often even every model made by that company) has it's own specific charger which is incompatible with anything else. Michael Shiloh wrote: In summary, the Neo can charge at 3 different rates: 100mA, 500mA, and 1A. Just to be absolutely clear, are these 3 rates hardwired into the circuitry? I'm pretty sure this is all software, but might depend on the firmware controlling the charger chips. Some chips allow continuous control, some have fixed rates. I'll try to find out. Or might it be possible in the future to support(through only software changes) some charger that has for example a max rating of 750mA, and get the maximum output from it. The discussion up to this point seems to indicate that the best that could be done with this theoretical charger would be 500mA. I suppose it doesn't make a huge difference, but something I'd like to know for sure. - Hans Loeblich ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Re: Charging Neo Freerunner via USB port
On Sat, Apr 19, 2008 at 8:16 PM, Michael Shiloh [EMAIL PROTECTED] wrote: Good question. I'm pretty sure the answer is no. Roh, do you recall? Are you referring to changing using different current draws? IIRC, someone was tweaking uboot because it wasn't drawing the full 100ma, only 20 or so, and managed to change some things. Cheers, Federico Remember, though, that the charging is all under software control, so you can set this in software and in fact there are apps to do just this. The hardware only provides automatic detection. Michael Ortwin Regel wrote: That's also something I'd like to know as my Minty Boost supposedly does up to ~250 mA and I'd like to use that much if possible. The Neo 1973 doesn't have the necessary hardware to detect chargers, though, or does it? Ortwin On 4/19/08, Hans L [EMAIL PROTECTED] wrote: Great summary Michael, and a good discussion. It would be nice to see the ability to support other fast chargers in the future. That is one of my pet peeves about cell phones is that it seems every single company(and often even every model made by that company) has it's own specific charger which is incompatible with anything else. Michael Shiloh wrote: In summary, the Neo can charge at 3 different rates: 100mA, 500mA, and 1A. Just to be absolutely clear, are these 3 rates hardwired into the circuitry? Or might it be possible in the future to support(through only software changes) some charger that has for example a max rating of 750mA, and get the maximum output from it. The discussion up to this point seems to indicate that the best that could be done with this theoretical charger would be 500mA. I suppose it doesn't make a huge difference, but something I'd like to know for sure. - Hans Loeblich ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Re: Terminology (was: Charging Neo Freerunner via USB port)
On Sat, Apr 19, 2008 at 3:37 PM, Michael 'Mickey' Lauer [EMAIL PROTECTED] wrote: Now I _personally_ expect the following from FreeRunner: usage time = 2 to 8 hours, depending on what you're actually doing standby time = 10 hours suspend time = 2-3 days Thanks for the information:) -- Please don't send me Word or PowerPoint attachments. See http://www.gnu.org/philosophy/no-word-attachments.html Join the FSF as an Associate Member at: URL:http://www.fsf.org/register_form?referrer=5774 ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Charging Neo Freerunner via USB port
Hi everyone, With input from the experts who designed the system, I've tried to document precisely how charging works on the Neo Freerunner. I welcome your feedback: The Neo Freerunner charges the battery when 5VDC is provided at the USB port, whether from a computer USB port or from a dedicated USB charger. The Neo Freerunner can charge most rapidly when it can pull 1 Amp from the power supply connected to the USB socket. However, not all chargers or computers can provide this much current. When the Neo Freerunner detects that power has been provided at the USB port, it will attempt to draw only 100mA. This minimum is mandated by the USB standard. This amount of current is insufficient to both power the Neo Freerunner (or even just its backlight) and to charge the battery, and therefore the battery will not be charged. (The battery discharge rate, however, will be slightly lower, as the supplied 100mA will be used to augment the battery.) (When a charger is connected to the USB port, the Neo Freerunner automatically powers up. Thus, if charging at 100mA is desired, the Neo Freerunner must be shut down after the startup process has completed.) After detecting USB power, The Neo Freerunner will attempt to negotiate, via the USB protocol, a higher charge rate of 500mA. If the device powering the Neo is capable of doing so, the Neo Freerunner will charge at 500mA. USB chargers do not implement the USB protocol, and thus can not respond to requests for higher charge rates. Some manufacturers have worked around this issue by installing resistors of different values between different pairs of pins in in order to identify their own chargers of known capacity. This is not part of the USB standard and is completely up to each manufacturer. The USB charger provided with the Neo Freerunner can source up to 1A. In order to identify this special charger, there is a 47K ohm resistor between the ID pin and ground. If the Neo Freerunner detects this resistor, then the Neo Freerunner will charge at 1A. In summary, the Neo can charge at 3 different rates: 100mA, 500mA, and 1A. Notes: 1. USB negotiation and resistor detection is performed in software, and is thus under developer control. A developer might write an application to indicate that 500mA or 1 Amp are available, bypassing the USB negotiation and the 47K ohm resistor detection. There is nothing preventing the software from charging at a higher rate than then power provider can supply, although there is danger in doing so. The danger in drawing more current than a charger or computer USB port can provide is that components overheat and may become permanently damaged, or even catch fire, although most USB host devices implement current limits that will depower the port on overcurrent. 2. The Neo Freerunner charger is a single assembly which includes the USB cable. The cable is NOT a separate item and can not be removed from the charger (without cutting). 3. Any third-party charger that does not contain the 47K resistor will cause the software to assume it can draw only 100mA, regardless of how much current the charger really can source. 4. In its hard-coded configuration, the PMU doesn't charge the battery at all. The hard-coded configuration is used when power is applied to the PMU after a period of complete absence of power, including the backup battery. When the system comes up, it reconfigures the PMU to enable charging. Most of the configurable items are also preserved by the PMU if it powers the system down, but the PMU itself still has power - either from USB, main battery, or the backup battery. (This is the PMU's STANDBY mode.) 5. All of this discussion is for setting the maximum current that the Neo Freerunner can safely draw from the USB socket. The battery charging current may actually be lower, if the charging logic determines that a lower charge rate is appropriate. ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Re: Charging Neo Freerunner via USB port
Hi Michael, This is a good start, very informative. Some good additions, I think, would be: * Why does computer/usb charging max out at 500mA? is that a limitation of the USB spec? * you mention 'other manufacturers' that 'identify their own chargers' with various resistors... if I have one of those chargers, is there a way to get the phone to ID it? * for hacking purposes it would be good to document what other mfrs chargers use and how easy they are to hack into moko fastchargers. This should be a wiki page and community driven, of course, but you could get it jump-started with whatever info you have on this issue. I, for one, have a small pile of motorola chargers with mini USB on them that I'm more than willing to hack into moko fastchargers given some basic instructions. * you/we should make the charging status *VERY APPARENT*. People are going to be unhappy if they plug it in and it doesn't charge when they think it will (consider the case of a cheapo usb hub that won't supply the power), but this can be avoided if the phone makes it obvious when it is or isn't charging. Just my pair of pennies, --pj On Friday, Apr 18, 2008, Michael Shiloh writes: Hi everyone, With input from the experts who designed the system, I've tried to document precisely how charging works on the Neo Freerunner. I welcome your feedback: The Neo Freerunner charges the battery when 5VDC is provided at the USB port, whether from a computer USB port or from a dedicated USB charger. The Neo Freerunner can charge most rapidly when it can pull 1 Amp from the power supply connected to the USB socket. However, not all chargers or computers can provide this much current. When the Neo Freerunner detects that power has been provided at the USB port, it will attempt to draw only 100mA. This minimum is mandated by the USB standard. This amount of current is insufficient to both power the Neo Freerunner (or even just its backlight) and to charge the battery, and therefore the battery will not be charged. (The battery discharge rate, however, will be slightly lower, as the supplied 100mA will be used to augment the battery.) (When a charger is connected to the USB port, the Neo Freerunner automatically powers up. Thus, if charging at 100mA is desired, the Neo Freerunner must be shut down after the startup process has completed.) After detecting USB power, The Neo Freerunner will attempt to negotiate, via the USB protocol, a higher charge rate of 500mA. If the device powering the Neo is capable of doing so, the Neo Freerunner will charge at 500mA. USB chargers do not implement the USB protocol, and thus can not respond to requests for higher charge rates. Some manufacturers have worked around this issue by installing resistors of different values between different pairs of pins in in order to identify their own chargers of known capacity. This is not part of the USB standard and is completely up to each manufacturer. The USB charger provided with the Neo Freerunner can source up to 1A. In order to identify this special charger, there is a 47K ohm resistor between the ID pin and ground. If the Neo Freerunner detects this resistor, then the Neo Freerunner will charge at 1A. In summary, the Neo can charge at 3 different rates: 100mA, 500mA, and 1A. Notes: 1. USB negotiation and resistor detection is performed in software, and is thus under developer control. A developer might write an application to indicate that 500mA or 1 Amp are available, bypassing the USB negotiation and the 47K ohm resistor detection. There is nothing preventing the software from charging at a higher rate than then power provider can supply, although there is danger in doing so. The danger in drawing more current than a charger or computer USB port can provide is that components overheat and may become permanently damaged, or even catch fire, although most USB host devices implement current limits that will depower the port on overcurrent. 2. The Neo Freerunner charger is a single assembly which includes the USB cable. The cable is NOT a separate item and can not be removed from the charger (without cutting). 3. Any third-party charger that does not contain the 47K resistor will cause the software to assume it can draw only 100mA, regardless of how much current the charger really can source. 4. In its hard-coded configuration, the PMU doesn't charge the battery at all. The hard-coded configuration is used when power is applied to the PMU after a period of complete absence of power, including the backup battery. When the system comes up, it reconfigures the PMU to enable charging. Most of the configurable items are also preserved by the PMU if it powers the system down, but the PMU itself still has power - either from USB, main battery, or the backup battery. (This is the PMU's STANDBY mode.) 5. All of this discussion is for setting the maximum current that the Neo
Re: Charging Neo Freerunner via USB port
On Fri, Apr 18, 2008 at 11:22 AM, Andy Powell [EMAIL PROTECTED] wrote: On the GTA01 you can press AUX as you power up to get the boot menu. On mine I have added an option to start fast (500ma) charging and power off the backlight. This means I don't need to have enough power to do a full boot to get the device charging. Perhaps an option for slow (100ma) charging that turns the backlight off would be useful - although it would probably need to have a few tests run to see if it was actually helping any. In my testing, the current draw from the battery while I'm sitting at the boot menu is not very low. Maybe this menu hack needs to set the CPU into a very low-power mode, turn off the radios, etc. ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Re: Charging Neo Freerunner via USB port
On Fri, Apr 18, 2008 at 12:06 PM, Michael Shiloh [EMAIL PROTECTED] wrote: * for hacking purposes it would be good to document what other mfrs chargers use and how easy they are to hack into moko fastchargers. This should be a wiki page and community driven, of course, but you could get it jump-started with whatever info you have on this issue. I, for one, have a small pile of motorola chargers with mini USB on them that I'm more than willing to hack into moko fastchargers given some basic instructions. Since I feel the utility of this isn't tremendous, I think my time is better spent elsewhere. However, if others want to do this, I would suggest you start your search at lady ada's forum where they discuss getting the minty-boost charger to work with different models of iPod. That seems to be one of the most comprehensive discussions of USB charger identifications I have ever found. (If anyone knows of a similar, or better one, I would love to hear about it.) I would like to see the Motorola chargers working too, without having to modify the charger. It seems that it's some other resistance, maybe 200k. What is the tolerance? Does the Freerunner actually measure the resistance? If we modify the code to be more tolerant (any resistance between 20K and 500K means a charger is being detected, and 500mA should be OK, whereas if it's 47K we can charge at 1A) could the phone be distributed with this modification? Where is this code which does the measuring, is it the PMU firmware or it runs on the main CPU? ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Re: Charging Neo Freerunner via USB port
On 4/18/08, Shawn Rutledge [EMAIL PROTECTED] wrote: On Fri, Apr 18, 2008 at 12:06 PM, Michael Shiloh [EMAIL PROTECTED] wrote: * for hacking purposes it would be good to document what other mfrs chargers use and how easy they are to hack into moko fastchargers. This should be a wiki page and community driven, of course, but you could get it jump-started with whatever info you have on this issue. I, for one, have a small pile of motorola chargers with mini USB on them that I'm more than willing to hack into moko fastchargers given some basic instructions. Since I feel the utility of this isn't tremendous, I think my time is better spent elsewhere. However, if others want to do this, I would suggest you start your search at lady ada's forum where they discuss getting the minty-boost charger to work with different models of iPod. That seems to be one of the most comprehensive discussions of USB charger identifications I have ever found. (If anyone knows of a similar, or better one, I would love to hear about it.) I would like to see the Motorola chargers working too, without having to modify the charger. It seems that it's some other resistance, maybe 200k. What is the tolerance? Does the Freerunner actually measure the resistance? If we modify the code to be more tolerant (any resistance between 20K and 500K means a charger is being detected, and 500mA should be OK, whereas if it's 47K we can charge at 1A) could the phone be distributed with this modification? Where is this code which does the measuring, is it the PMU firmware or it runs on the main CPU? If you make this kind of modification, there is no use in the autodetection. It is more safe to check for the 47k and the other values. -- Please don't send me Word or PowerPoint attachments. See http://www.gnu.org/philosophy/no-word-attachments.html Join the FSF as an Associate Member at: URL:http://www.fsf.org/register_form?referrer=5774 ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Re: Charging Neo Freerunner via USB port
On Fri, 18 Apr 2008 21:06:26 +0200, Michael Shiloh [EMAIL PROTECTED] wrote: * you mention 'other manufacturers' that 'identify their own chargers' with various resistors... if I have one of those chargers, is there a way to get the phone to ID it? There are two issues here: First of all, you have to know the value and location (i.e. between which two pins) of the resistor. There is no standard, no gathering place of all this information. You can search the Internet in case someone has posted this. I'm not sure how we measure the resistor. My guess is we measure the current and deduce from this. Measuring the current requires an analog to digital converter (ADC), which we must have wired up to the pin in question. If an arbitrary charger uses a different pin, and if we don't have an ADC on that pin, we won't be able to detect the resistor there. That said, the most common location for a resistor is the same as ours, so you're in good shape. Next, you have to modify the code to do this. Trivial for all you developers. This could actually be done by an application downloadable by a user who knows what he's doing. The user starts the application, plugs in the charger, the application measures the resistance. If it's not something identifiable, too bad. Otherwise, the user reads the output current specification on the charger and adds the pair (ID resistance, current) to the table. The reason I think this is of limited use is that I would guess that most of you will simply read the label on the charger, and then use a utility to override all the automatic detection and simply tell the charging logic that 500mA or 1A is available. Automating this is a lot of work for little gain. Not so little if you have a particular charger (say, Motorola) and use it to charge Neo every time. You'd really want it to auto-detect the charger instead of choosing the charging current manually every time. -- Alexey Feldgendler [EMAIL PROTECTED] [ICQ: 115226275] http://feldgendler.livejournal.com ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Re: Charging Neo Freerunner via USB port
On Fri, Apr 18, 2008 at 1:44 PM, Flemming Richter Mikkelsen [EMAIL PROTECTED] wrote: If you make this kind of modification, there is no use in the autodetection. What do you mean? Autodetecting that a computer is the host depends on some digital communications rather than measuring a resistor. There is no resistor between pin X and ground in that case, right? It is more safe to check for the 47k and the other values. It would be safer but not as universal. Somebody will have to figure out the tests for Samsung chargers etc. But probably every mini-USB charger can supply at least 500mA, or if not, it would limit the current itself. So I don't think there's anything very unsafe about making that assumption. But we could show the actual battery charge current on the mini-control panel which can be popped up by clicking on the status bar, so if you need to know whether the phone is really charging (rather than trying and not getting enough juice) you can easily find out. Anyway you are assuming no other charger in the world uses 47k, or that if it does, it would be capable of supplying 1A, right? But, if the phone tries to draw 1A and the dumb fast-charger cannot supply it, then the current would probably be limited by the charger anyway. I have a powered hub from which the Neo cannot even draw a full 500mA. (Lousy hub, I guess, or lousy power supply that is powering it.) Nothing gets damaged, but I was wondering why the phone wasn't getting fully charged when plugged into that hub for days or weeks. Now I have to use an actual motherboard USB port instead. Moto also has some USB accessories like a headset, and a headset-adapter. It will be interesting to see what happens when one of those is plugged in; I suspect they used more resistor/transistor tricks to detect those, too. Maybe they even abused the USB pins in other ways to enable those accessories. ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Re: Charging Neo Freerunner via USB port
Alexey Feldgendler wrote: On Fri, 18 Apr 2008 21:06:26 +0200, Michael Shiloh [EMAIL PROTECTED] wrote: * you mention 'other manufacturers' that 'identify their own chargers' with various resistors... if I have one of those chargers, is there a way to get the phone to ID it? There are two issues here: First of all, you have to know the value and location (i.e. between which two pins) of the resistor. There is no standard, no gathering place of all this information. You can search the Internet in case someone has posted this. I'm not sure how we measure the resistor. My guess is we measure the current and deduce from this. Measuring the current requires an analog to digital converter (ADC), which we must have wired up to the pin in question. If an arbitrary charger uses a different pin, and if we don't have an ADC on that pin, we won't be able to detect the resistor there. That said, the most common location for a resistor is the same as ours, so you're in good shape. Next, you have to modify the code to do this. Trivial for all you developers. This could actually be done by an application downloadable by a user who knows what he's doing. The user starts the application, plugs in the charger, the application measures the resistance. If it's not something identifiable, too bad. Otherwise, the user reads the output current specification on the charger and adds the pair (ID resistance, current) to the table. That's a great idea. Find the code that checks for the specific Freerunner resistance, and modify it to simply report the value of whatever it sees. If it is anything different from an open or short circuit (within reasonable tolerances) assume it is a resistor, and note the value. Post to the wiki, and if a few other people see the same value for the same charger, this seems safe to code. The reason I think this is of limited use is that I would guess that most of you will simply read the label on the charger, and then use a utility to override all the automatic detection and simply tell the charging logic that 500mA or 1A is available. Automating this is a lot of work for little gain. Not so little if you have a particular charger (say, Motorola) and use it to charge Neo every time. You'd really want it to auto-detect the charger instead of choosing the charging current manually every time. Yes, that's a really good point, and one I had overlooked. ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Re: Charging Neo Freerunner via USB port
This could be done even more simple: - Download and install the program - Connect the charger with the unknown resistor - Click on the button Get charger ID - If a valid charger ID is found, the button Add this charger becomes clickable, else it is grayed out. What do you think? ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Re: Charging Neo Freerunner via USB port
On 4/18/08, Flemming Richter Mikkelsen [EMAIL PROTECTED] wrote: This could be done even more simple: - Download and install the program - Connect the charger with the unknown resistor - Click on the button Get charger ID - If a valid charger ID is found, the button Add this charger becomes clickable, else it is grayed out. What do you think? - Ohh, and a valid charger ID would be a resistance between res_min and res_max. - Several pins could be probed - The program add this value to the /etc/charger.conf for you - The program that autodetects the charger, parses /etc/charger.conf if the file exists Just a thought -- Please don't send me Word or PowerPoint attachments. See http://www.gnu.org/philosophy/no-word-attachments.html Join the FSF as an Associate Member at: URL:http://www.fsf.org/register_form?referrer=5774 ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Re: Charging Neo Freerunner via USB port
Flemming Richter Mikkelsen wrote: This could be done even more simple: - Download and install the program - Connect the charger with the unknown resistor - Click on the button Get charger ID - If a valid charger ID is found, the button Add this charger becomes clickable, else it is grayed out. What do you think? Sounds great to me. If this happens before you all get yours, I can test on my prototypes. Michael ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Re: Charging Neo Freerunner via USB port
Flemming Richter Mikkelsen wrote: On 4/18/08, Flemming Richter Mikkelsen [EMAIL PROTECTED] wrote: This could be done even more simple: - Download and install the program - Connect the charger with the unknown resistor - Click on the button Get charger ID - If a valid charger ID is found, the button Add this charger becomes clickable, else it is grayed out. What do you think? - Ohh, and a valid charger ID would be a resistance between res_min and res_max. - Several pins could be probed You can only probe the pins that have the appropriate hardware interface to them. This may be all, but can't be taken for granted. One of the hardware people can tell us which pins are capable of this, and how you select which one you want to measure. - The program add this value to the /etc/charger.conf for you - The program that autodetects the charger, parses /etc/charger.conf if the file exists Just a thought ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community
Re: Charging Neo Freerunner via USB port
Michael Shiloh wrote: Flemming Richter Mikkelsen wrote: - Ohh, and a valid charger ID would be a resistance between res_min and res_max. - Several pins could be probed You can only probe the pins that have the appropriate hardware interface to them. This may be all, but can't be taken for granted. One of the hardware people can tell us which pins are capable of this, and how you select which one you want to measure. there is only one pin to measure. the 'id pin' is pin number 4 directly beneath pin 5 which is gnd. pin 1 is vcc (5V) 2 and 3 are D- and D+ for usb data. thus all pins are 'taken' by standard besides the 'id pin' on gta02 its connected to an adc inside the pmu. details: the id pin is connected directly to pin9 of the pmu (adcin1) in addition to that there is one resistor of 100k(1%) to gnd and one of 39k(1%) to pin8 of the pmu (accsw) now everyone should be able to do the math while looking at the pmu datasheet. ;) motorola chargers have a 200k (pretty exact, shows 200.0 on my not-that-cheap-but-chinese multimeter) resistor to gnd. in addition to that they short D+ and D- to each others (read about that too in some usb-charging-spec), but i think we can ignore that because detecting that would propably quite some hacking if possible at all (dunno the usb-hw-if of the samsung enough) and also not that helpful. i wouldn want to have a 'range' of 'recognized valid resistance' but rather a table.. means * 48k - moko charger (2A) - 1A mode * 200k - motorola charger (550mA) - 500mA mode * ... if no resistor or short is detected - if it speaks usb and does enumerate us as 500mA - 550mA mode if it does not speak usb at all or only enumerates us as 100mA - 100mA mode the nice thing is: this whole feature doesn't affect the hw going to mp. its a software needs to have more (to be found out) values and fitting modes coded in. the code to measure the pin should be in uboot and kerneldrivers. didn't have a look at both yet. but yes. a nice small (can be console) way to find out the adc value would be practical to build the table of known to be valid chargers. -- Joachim Steiger developer relations/support ___ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community