Reply
Thread Tools
Estel's Avatar
Posts: 5,028 | Thanked: 8,613 times | Joined on Mar 2011
#31
Just little addition to what Mentalist said - AFAIK device hanging totally instead of rebooting has one disadvantage - possible filesystem corruptions. Watchdogs tends to unmount filesystem before rebooting, just like bme does (#fixme if I'm wrong).

Anyway, especially this line:

cat /sys/class/power_supply/bq27200-0/charge_full_design
0

...makes me wonder, if Your ID pin of battery is even connected/recognized? That could be source of problems, BUT - (another AFAIK) bme turns device on in < 1 second when unable to probe ID pin. I never heard that R&D mode disables this behavior - can someone running on R&D confirm/deny this?

And, wasn't temperature also probed on ID pin?

It's VERY strange all together. could other people, reporting there "same issues" do similar cat probing? I think first of all, we need to check if it's "reproduceable" problem, that may hit some devices, or jvollmann's troubles are unique, and other doesn't share same symptoms.

From top of my head i would still say "damaged bq_27200 chip", but somehow voltage and temp is probed correctly... Huge WTF.
__________________
N900's aluminum backcover / body replacement
-
N900's HDMI-Out
-
Camera cover MOD
-
Measure battery's real capacity on-device
-
TrueCrypt 7.1 | ereswap | bnf
-
Hardware's mods research is costly. To support my work, please consider donating. Thank You!
 

The Following User Says Thank You to Estel For This Useful Post:
Posts: 63 | Thanked: 27 times | Joined on Jul 2011 @ Venezuela
#32
Originally Posted by RobbieThe1st View Post
Go install i2c-tools from extras-devel(ignore the warning).
Here's the charge-script used in backupmenu; should tell you something:
Code:
#/bin/bash
# Reset

#echo -n Reset...
#i2cset -y -m 0x80 2 0x6b 0x04 80
#echo -n Done. Sleep 1...
#sleep 1
#echo -n Done.

#echo "Charger: " $(cat /sys/devices/platform/musb_hdrc/charger)

# Disable charger for configuration:
i2cset -y 2 0x6b 0x01 0xcc # No limit, 3.4V weak threshold, enable term, charger disable


# Register 0x04
# 8: reset
# 4: 27.2mV  # charge current
# 2: 13.6mV
# 1: 6.8mV
# 8: N/A
# 4: 13.6mV # termination current
# 2: 6.8mV
# 1: 3.4mV
# 7-1250 6-1150 5-1050 4-950 3-850 2-750 1-650 0-550
# 7-400 6-350 5-300 4-250 3-200 2-150 1-100 0-50
i2cset -y -m 0xFF 2 0x6b 0x04 0x50;

# Register 0x02
# 8: .640 V
# 4: .320 V
# 2: .160 V
# 1: .080
# 8: .040
# 4: .020 (+ 3.5)
# 2: otg pin active at high (default 1)
# 1: enable otg pin
i2cset -y -m 0xfc 2 0x6b 0x02 0x8c; 
# 4.2 = 3.5 + .640 + .040 + .02 = 8c
# 4.16 = 3.5 + .640V + .020 = 84
# 4.1 = 3.5 + .320 + .160 + .08 + .04 = 78
# 4.0 = 3.5 + .320 + .160 + .02 = 64
# 3.9 = 3.5 + .320 + .080 = 50

# Register 0x1
# 8: 00 = 100, 01 = 500, 10 = 800mA
# 4: 11 = no limit
# 2: 200mV weak threshold default 1
# 1: 100mV weak treshold defsult 1 (3.4 - 3.7)
# 8: enable termination
# 4: charger disable
# 2: high imp mode
# 1: boost
i2cset -y 2 0x6b 0x01 0xc8; 
#0110 1011

# Register 0x00
# 8: Read:  OTG Pin Status
#    Write: Timer Reset
# 4: Enable Stat Pin
# 2: Stat : 00 Ready 01 In Progress
# 1:      : 10 Done  11 Fault
# 8: Boost Mode
# 4: Fault: 000 Normal 001 VBUS OVP 010 Sleep Mode 
# 2:        011 Poor input or Vbus < UVLO 
# 1:        100 Battery OVP 101 Thermal Shutdown
#           110 Timer Fault 111 NA
i2cset -y 2 0x6b 0x00 0x00; 

#echo -n "Charge parameters programmed. Sleep 1..."
sleep 1
#echo "Status: " $(i2cget -y 2 0x6b 0x00)
i2cset -y 2 0x6b 0x00 0x80 # timer reset
cat /sys/devices/platform/musb_hdrc/charger >/dev/null

# Initialize variables
THROTTLE=0
FULL=0
MODE="STANDBY"
WALLCHARGER=0

# Assuming a nice round number 20mOhm for bq27200 sense resistor
RS=20

get_nac ()
{
    NAC=$(i2cget -y 2 0x55 0x0c w)
    NAC=$(($NAC * 3570 / $RS / 1000))
}
get_rsoc ()
{
    RSOC=$(i2cget -y 2 0x55 0x0b)
    RSOC=$((RSOC))
}
get_volt ()
{
   VOLT=$(i2cget -y 2 0x55 0x08 w)
   VOLT=$(($VOLT))
}

STATUS=$(i2cget -y 2 0x6b 0x00)
while true ; do
   sleep 10; 
   STATUS=$(i2cget -y 2 0x6b 0x00)
   #echo $STATUS

   i2cset -y -m 0x80 2 0x6b 0x00 0x80; # timer reset
   get_nac
   get_rsoc
   get_volt

   if [ $MODE == "STANDBY" ] ; then
      if [ $STATUS == 0x10 ] || [ $STATUS == 0x90 ] ; then
         MODE="CHARGING"
         #echo $(date) "standby -> CHARGING. Current available capacity: " $NAC "mAh" >> /home/user/MyDocs/charger.log
         echo 60 > /sys/class/backlight/acx565akm/brightness
         WALLCHARGER=$(cat /sys/devices/platform/musb_hdrc/charger)
      fi
   fi
   if [ $MODE == "CHARGING" ] ; then
      if [ $STATUS == 0x00 ] ; then
         MODE="STANDBY"
         echo 15 > /sys/class/backlight/acx565akm/brightness
         #echo $(date) "charging -> STANDBY. Current available capacity: " $NAC "mAh" >> /home/user/MyDocs/charger.log
         WALLCHARGER=0
         # This will stop USB from eating power as long as you haven't plugged it into a PC
         echo 0 > /sys/devices/platform/musb_hdrc/connect
      fi
   fi

   if [ $STATUS == 0xa0 ] && [ $FULL == 0 ] ; then
      #echo "Charge done"
      #echo $(date) "FULL: " $NAC "mAh" >> /home/user/MyDocs/charger.log
      FULL=1
   fi
   if [ $STATUS == 0x00 ] && [ $FULL == 1 ] ; then
      FULL=0
   fi
   echo Status: $STATUS Mode: $MODE Full: $FULL WallCharger: $WALLCHARGER Battery Voltage: $VOLT NAC: $NAC Battery level: $RSOC %
done
Save it as charge.sh (anywhere but mydocs/sd) and run "chmod +x /path/to/charge.sh".
Then run it. Every ~10 or so seconds, you'll get a message telling what's going on.
I downloaded i2c-tools and then runned the script but didn't show up anything:

# chmod +x /home/user/MyDocs/charge.sh
#
 
Estel's Avatar
Posts: 5,028 | Thanked: 8,613 times | Joined on Mar 2011
#33
From output You provided, it seems that You only chmod it. Now, You need to run it.

Also, you placed it in MyDosc, while Robbie clearly asked You to place it anywhere EXCEPT MyDocs or vFAT partition of microSD. vFAT is set as noexec on N900.

[off-topic]Robbie, it's same script that shadowjk created for HEN? If that, is it latest version?[/off-topic]
__________________
N900's aluminum backcover / body replacement
-
N900's HDMI-Out
-
Camera cover MOD
-
Measure battery's real capacity on-device
-
TrueCrypt 7.1 | ereswap | bnf
-
Hardware's mods research is costly. To support my work, please consider donating. Thank You!
 
Posts: 63 | Thanked: 27 times | Joined on Jul 2011 @ Venezuela
#34
Originally Posted by Estel View Post
Just little addition to what Mentalist said - AFAIK device hanging totally instead of rebooting has one disadvantage - possible filesystem corruptions. Watchdogs tends to unmount filesystem before rebooting, just like bme does (#fixme if I'm wrong).

Anyway, especially this line:

cat /sys/class/power_supply/bq27200-0/charge_full_design
0

...makes me wonder, if Your ID pin of battery is even connected/recognized? That could be source of problems, BUT - (another AFAIK) bme turns device on in < 1 second when unable to probe ID pin. I never heard that R&D mode disables this behavior - can someone running on R&D confirm/deny this?

And, wasn't temperature also probed on ID pin?

It's VERY strange all together. could other people, reporting there "same issues" do similar cat probing? I think first of all, we need to check if it's "reproduceable" problem, that may hit some devices, or jvollmann's troubles are unique, and other doesn't share same symptoms.

From top of my head i would still say "damaged bq_27200 chip", but somehow voltage and temp is probed correctly... Huge WTF.
I didn't type the infos wich weren't zero, here they are:

# cat /sys/class/power_supply/bq27200-0/temp
# 333
#cat /sys/class/power_supply/bq27200-0/voltage_now
# 3858000
# cat /sys/class/power_supply/bq27200-0/current_now
# 168147

It's all very weird,,, hope all the community can help!

Last edited by jvollmann; 2011-07-12 at 13:48.
 
Estel's Avatar
Posts: 5,028 | Thanked: 8,613 times | Joined on Mar 2011
#35
non-zero outputs are perfectly fine - 168 mAh current @ probing moment, 3,858 V battery (~50 %) and 33,3 Celsius scale battery temperature.

Also, we posted on almost very same moment, so please check my last post in case You missed it.
__________________
N900's aluminum backcover / body replacement
-
N900's HDMI-Out
-
Camera cover MOD
-
Measure battery's real capacity on-device
-
TrueCrypt 7.1 | ereswap | bnf
-
Hardware's mods research is costly. To support my work, please consider donating. Thank You!
 

The Following User Says Thank You to Estel For This Useful Post:
Posts: 63 | Thanked: 27 times | Joined on Jul 2011 @ Venezuela
#36
Originally Posted by Estel View Post
From output You provided, it seems that You only chmod it. Now, You need to run it.

Also, you placed it in MyDosc, while Robbie clearly asked You to place it anywhere EXCEPT MyDocs or vFAT partition of microSD. vFAT is set as noexec on N900.

[off-topic]Robbie, it's same script that shadowjk created for HEN? If that, is it latest version?[/off-topic]
You're right.. I moved the file (I copied exactly the same code that Robbie posted) to /home directory. However:

# chmod +x /home/charge.sh
# ./charge.sh
: not found line 3:
:not found line 9:
.
.
.
/ 1000 / 20 line 88: syntax error: 0x0000

I checked i2c-tools just in case I forgot to install but it is installed.
 
Posts: 63 | Thanked: 27 times | Joined on Jul 2011 @ Venezuela
#37
Originally Posted by Estel View Post
Just little addition to what Mentalist said - AFAIK device hanging totally instead of rebooting has one disadvantage - possible filesystem corruptions. Watchdogs tends to unmount filesystem before rebooting, just like bme does (#fixme if I'm wrong).

Anyway, especially this line:

cat /sys/class/power_supply/bq27200-0/charge_full_design
0

...makes me wonder, if Your ID pin of battery is even connected/recognized? That could be source of problems, BUT - (another AFAIK) bme turns device on in < 1 second when unable to probe ID pin. I never heard that R&D mode disables this behavior - can someone running on R&D confirm/deny this?

And, wasn't temperature also probed on ID pin?

It's VERY strange all together. could other people, reporting there "same issues" do similar cat probing? I think first of all, we need to check if it's "reproduceable" problem, that may hit some devices, or jvollmann's troubles are unique, and other doesn't share same symptoms.

From top of my head i would still say "damaged bq_27200 chip", but somehow voltage and temp is probed correctly... Huge WTF.
I'm sorry Estel.. I mistyped this line:

"cat /sys/class/power_supply/bq27200-0/charge_full_design
0"

the actual value is: 2056320, i missed that!

I know that confused you but I wrote it from the phone's terminal to the pc and thought that was also 0...

About other people with similar problems: I wrote a private message to @mega (the guy who started this thread), and he told me that he solved the problem taking the phone to a nokia center. I also wrote on quokka's thread: http://talk.maemo.org/showthread.php...03#post1049103 , and asked him to try R&D mode to see if he has similar issues.

Last edited by jvollmann; 2011-07-12 at 13:49.
 

The Following User Says Thank You to jvollmann For This Useful Post:
Posts: 63 | Thanked: 27 times | Joined on Jul 2011 @ Venezuela
#38
Just to know (correct me if i'm wrong):

The problem with restart loop is that the device won't start up because the battery charge is low (or the device "thinks" is low, as it's my case).

I guess that this step is skipped on R&D mode and that's why it can boot perfectly when one enables it.
 
Estel's Avatar
Posts: 5,028 | Thanked: 8,613 times | Joined on Mar 2011
#39
Not for sure. Info you get from bq_27200 module is read-only data, independent from bme (battery monitor entity), which MAY or MAY NOT think the same - unfortunately, AFAIK we can't check this, thank to Nokia closed source bme (curse them 1000 times for that, for MANY reasons).

So, ID PIN is definitely probed correctly. Ho ever, at least bq_module think, that battery capacity at full charge is still 0 - this may be symptom of problem, but may also mean that bq module haven't had a chance to perform internal calibration of values (which shouldn't cause the problem on itself).

I think You could try 2 things, independent from each other:

1. Flash some framebuffer kernel, and see on which point normal boot-up fails

2. In R&D mode, install HEN + shadowjk charge script (this one surely work outside backupmenu) - You can find it in HEN thread (normally, it's used to charge while USB hostmode. Then, monitor voltage using bq_27200 module, and when it's close to 3,300V, enable HEN (this is easiest way to stop bme without risk of restart after 32 seconds, ho ever may be also possible by executing "kill bme" from terminal as root - I don't know if it triggers restart after 32 seconds in R&D also, so using HEN is 100% sure and won't hurt in any case), then wait for voltage to drop lower than 3,200 V. Then, quickly enable shadowjk's charge script, and charge it to the full (without disabling HEN!). After charge cycle is done, check again if charge_full is still reported as 0 by bq_27200.

Explanation:
bq_27200 module perform "learning cycle" (referred by me earlier in this post, as "calibration of internal values") IF voltage drops below 3,248 AND device doesn't shut down before being charged to 100%. Unfortunately, bme shuts down device @ ~3,200 (little lower), so it's hardly to ever happen. That may be (or may not) be the cause, why Your charge_full is reporting 0.

Doing that, we at least check it all bq_27200 reports can be correct - this way, it's most unlikely that bq_27200 chip is damaged. Still, nothing sure for 100%, but at least we can filter out one possible symptom.
__________________
N900's aluminum backcover / body replacement
-
N900's HDMI-Out
-
Camera cover MOD
-
Measure battery's real capacity on-device
-
TrueCrypt 7.1 | ereswap | bnf
-
Hardware's mods research is costly. To support my work, please consider donating. Thank You!
 
Posts: 63 | Thanked: 27 times | Joined on Jul 2011 @ Venezuela
#40
Where can I download a "framebuffer kernel"?

I read about "jrBME" that should replace BME but activity percentile is 0%. The project was registered on 2010-06!!

Well, I'm going to try these options and I'll let you know how it works.
Thanks
 

The Following User Says Thank You to jvollmann For This Useful Post:
Reply


 
Forum Jump


All times are GMT. The time now is 07:36.