Service mode by power supply pins?

Discuss the development of new homebrew software, tools and libraries.

Moderators: cheriff, TyRaNiD

mrbrown
Site Admin
Posts: 1537
Joined: Sat Jan 17, 2004 11:24 am

Service mode by power supply pins?

Post by mrbrown »

Has anyone ever figured out what the two pins beneath the power supply plug were for? Has anyone ever guessed that they are used for a special I2C interface used by Sony to put the PSP into service mode for flash recovery? Did anyone ever connect the dots inside the main hardware initialization routine in main_led.bin of the IPL to come to this conclusion? Did you then request a PM from anyone else who has discovered this, or anyone with the hardware knowledge to build such an interface?

Just curious...
adresd
Posts: 43
Joined: Sat Jan 17, 2004 11:32 am

Post by adresd »

sadly, PM's arent always responded to
jockyw2001
Posts: 339
Joined: Thu Sep 29, 2005 4:19 pm

Re: Service mode by power supply pins?

Post by jockyw2001 »

mrbrown wrote:Just curious...
and knowledgable for sure. Sounds cool! Come on guys reverse that thing!

/JockyW
Shine
Posts: 728
Joined: Fri Dec 03, 2004 12:10 pm
Location: Germany

Re: Service mode by power supply pins?

Post by Shine »

mrbrown wrote:Has anyone ever figured out what the two pins beneath the power supply plug were for?
If I were you, I would lock this thread :-) But a continuity tester reveals, that there is nothing magic about these pins (check against + and GND).
mrbrown
Site Admin
Posts: 1537
Joined: Sat Jan 17, 2004 11:24 am

Post by mrbrown »

Well it's not really development related so I'll move it off-topic.

Right, it's been confirmed that the 2 pads are the same as the power supply jack. But I'm not convinced that you couldn't use the power supply to send and receive data...

And scratch the I2C bit for now, that has to do with other code in the IPL, but don't rule it out yet :).
nem
Posts: 73
Joined: Thu Jan 13, 2005 9:21 pm
Contact:

Post by nem »

Any need for hardware hack? :)
jimparis
Posts: 1145
Joined: Fri Jun 10, 2005 4:21 am
Location: Boston

Post by jimparis »

nem: When does IPL run? When power is applied or when the power switch is pressed?
mrbrown
Site Admin
Posts: 1537
Joined: Sat Jan 17, 2004 11:24 am

Post by mrbrown »

Also, if it does run when you apply power, if you apply external power without the battery installed, does the IPL still run?
nem
Posts: 73
Joined: Thu Jan 13, 2005 9:21 pm
Contact:

Post by nem »

CPU chip reads the memory chip to retrieve IPL on cold start, when you press the power switch.
Power is only applied to CPU chip after pressing the power switch, and I observe no access to memory chip when battery placed, external power connected, and so on.
jimparis
Posts: 1145
Joined: Fri Jun 10, 2005 4:21 am
Location: Boston

Post by jimparis »

I wonder if the IPL would even be involved with flash recovery, seeing as how the IPL is in flash too.
mrbrown
Site Admin
Posts: 1537
Joined: Sat Jan 17, 2004 11:24 am

Post by mrbrown »

The IPL is only accesible by the sceNand driver, so it's relatively protected from a casual bricking. Remember that most of the PSP's security hinged on people not being able to use kernel mode :).

What makes me even more suspicious is the layout of the IPL. You have main_led.bin loaded first, which *only* initializes flash, DDR, GPIO, I2C, the clockgen driver, and the interface to the battery/power port. The second program (what nem termed iplpayload) only has enough of sysmem, loadcore, and the FAT flash driver to bootstrap the kernel out of flash. It isn't until the proper kernel is loaded that the remaining peripherals are even initialized at all.

Why would they only bring up a subset of the hardware in main_led.bin? Why would they jump to a routine that doesn't exist (the address is composed by reading hardware registers and demangling the values) that has an infinite loop when that routine returns? Why would they pass that routine function pointers to sceSysconCmdExec (responsible for interface with the power port and battery), sceI2C routines, and some other mysterious hardware access routine?
jimparis
Posts: 1145
Joined: Fri Jun 10, 2005 4:21 am
Location: Boston

Post by jimparis »

mrbrown wrote:The IPL is only accesible by the sceNand driver, so it's relatively protected from a casual bricking.
They do reflash it from 1.x -> 2.x, so it could still get messed up for entirely innocent behavior, although that's unlikely since the IPL is so small.
... which *only* initializes flash, DDR, GPIO, I2C, the clockgen driver, and the interface to the battery/power port ...
Why would they only bring up a subset of the hardware in main_led.bin? ...
Why would they pass that routine function pointers to sceSysconCmdExec (responsible for interface with the power port and battery), sceI2C routines, and some other mysterious hardware access routine?
My bet is that they want to bring up as little hardware as necessary and use the I2C routines to check on the battery before continuing, possibly in an attempt to prevent the PSP from blowing up in Little Johnny's hands just because he left it in a hot car for too long.

The center pin on the battery looks like a bidrectional serial protocol running at 19200 baud, 0v to +2.5v. Activity on this line occurs very soon after the power switch is pressed, before the LED or backlight or any other visible response.

I put a serial dump with comments and timestamps at http://psp.jim.sh/battery/. There's also a scope trace of the beginning of one of the packets (which I've decoded as 5A, 02, 01, A2..).

I didn't think to watch that line when booting up with no battery present before I desoldered my test wires, but I can put it back together if you're interested in knowing that.
Shine
Posts: 728
Joined: Fri Dec 03, 2004 12:10 pm
Location: Germany

Post by Shine »

jimparis wrote:The center pin on the battery looks like a bidrectional serial protocol running at 19200 baud, 0v to +2.5v. Activity on this line occurs very soon after the power switch is pressed, before the LED or backlight or any other visible response.
Why do you think it is a bidirectional protocol? BTW: I was wondering why a battery has a serial connector, so I opened the case and looks like there is some more electronic to discover. Why didn't Sony integrated this into the PSP but in the battery?

Image
urchin
Posts: 121
Joined: Thu Jun 02, 2005 5:41 pm

Post by urchin »

Is that not just li-ion trickle charge circuitry?
ooPo
Site Admin
Posts: 2023
Joined: Sat Jan 17, 2004 9:56 am
Location: Canada
Contact:

Post by ooPo »

One could assume this serial connection would be used for battery status information, like charge level.
jimparis
Posts: 1145
Joined: Fri Jun 10, 2005 4:21 am
Location: Boston

Post by jimparis »

Shine wrote:Why do you think it is a bidirectional protocol?
Because there's at least some communication initiated by the PSP, and it's used to get status information from the battery. I could build a better circuit and figure out which data comes from where, but unless we think this is more than just battery status it's probably not too interesting :)
Why didn't Sony integrated this into the PSP but in the battery?
That's standard practice for Li-Ion, mostly for the safety circuits, probably also to reduce pin count, and to allow new types of batteries in the future.
jimparis
Posts: 1145
Joined: Fri Jun 10, 2005 4:21 am
Location: Boston

Post by jimparis »

I checked; there's no activity on this line at all when the battery is not present.
digihoe
Posts: 108
Joined: Sat May 14, 2005 7:40 pm

Post by digihoe »

jimparis

What direction did you check when you did you log? Did only the battery send information, or was it like this PSP sends 5A battery responds 02, etc. ?

Best regards!
jimparis
Posts: 1145
Joined: Fri Jun 10, 2005 4:21 am
Location: Boston

Post by jimparis »

There's just one wire that I simply measured. It would involve a bit more work to figure out which side was pulling it low each time; maybe I'll do that at some point.
digihoe
Posts: 108
Joined: Sat May 14, 2005 7:40 pm

Post by digihoe »

OK...
I think a pair of diods in combination with two RS232 echo interface and timing would do the trick...

Best regards!
Dr. Vegetable
Posts: 171
Joined: Mon Nov 14, 2005 1:32 am
Location: Boston, Massachusetts
Contact:

Post by Dr. Vegetable »

digihoe wrote:I think a pair of diods in combination with two RS232 echo interface and timing would do the trick...
I had thought of doing this when I was looking at the battery protocol a few months back. The problem is that the TX and RX are connected inside the battery, so you'd get loopback and everything will look as if it's coming from the battery. I think you have the same problem on the PSP side.

I did some experimentation by breaking the line and echoing back and forth using two COM ports on a PC to see what came from where. It gets pretty tricky to fake everyone out this way. For example, once every 30 seconds, the PSP sends a BREAK and expects to get a BREAK back in return or it goes silent. I also found that there is communication between the PSP and the battery when you first insert the battery. If the PSP doesn't get the right info from the battery, it will not turn on.

I've got a few logs of some of these transactions around here somewhere. I'll dig out my notes and post what I've got...

p.s. Could this thread be moved into PSP Hardware Development, please?
EDIT: Thank you!
Last edited by Dr. Vegetable on Thu Feb 23, 2006 2:11 am, edited 1 time in total.
ooPo
Site Admin
Posts: 2023
Joined: Sat Jan 17, 2004 9:56 am
Location: Canada
Contact:

Post by ooPo »

Moved.
Dr. Vegetable
Posts: 171
Joined: Mon Nov 14, 2005 1:32 am
Location: Boston, Massachusetts
Contact:

Post by Dr. Vegetable »

This is the data stream sent from the PSP to the battery when it is inserted. In this case, the battery's COM pin was disconnected, so it did not respond, and the PSP refuses to power up:

Code: Select all


 &#91;00&#93;   <BREAK>

 &#91;5A&#93;Z&#91;00&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;01&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;09&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;09&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;09&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;09&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;09&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;09&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;01&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;01&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;01&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;01&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;00&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;09&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;09&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;01&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;01&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;01&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;01&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;00&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;01&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;01&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;01&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;09&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;01&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;09&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;00&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;00&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;01&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;01&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;01&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93; 

 &#91;00&#93; <BREAK>
This time, the battery was inserted with the COM port connected through to the PSP:

Code: Select all

 &#91;00&#93; <BREAK>

 &#91;5A&#93;Z&#91;09&#93; &#91;0B&#93; &#91;24&#93;$&#91;FD&#93;
 &#91;A5&#93; &#91;15&#93; &#91;32&#93;2&#91;08&#93; &#91;4C&#93;L&#91;B3&#93; &#91;20&#93; &#91;C2&#93;

 &#91;5A&#93;Z&#91;09&#93; &#91;63&#93;c&#91;70&#93;p&#91;FE&#93;
 &#91;A5&#93; &#91;19&#93; &#91;32&#93;2&#91;88&#93; &#91;41&#93;A&#91;21&#93;!&#91;23&#93;#&#91;AA&#93; &#91;F4&#93;

 &#91;5A&#93;Z&#91;0D&#93; &#91;03&#93; &#91;06&#93; &#91;10&#93; &#91;B9&#93; &#91;4A&#93;J&#91;C2&#93; &#91;D4&#93; &#91;30&#93;0&#91;7D&#93;&#125;&#91;92&#93; &#91;53&#93;S&#91;0E&#93; &#91;FC&#93;
 &#91;A5&#93; &#91;49&#93;I&#91;32&#93;2&#91;48&#93;H&#91;97&#93; &#91;74&#93;t&#91;2E&#93;.&#91;66&#93;f&#91;D2&#93; &#91;F2&#93; &#91;80&#93; &#91;E7&#93; &#91;0D&#93; &#91;19&#93; &#91;BD&#93; &#91;16&#93; &#91;4E&#93;N&#91;5C&#93;\&#91;4D&#93;M&#91;97&#93; &#91;28&#93;&#40;&#91;43&#93;C

 &#91;5A&#93;Z&#91;00&#93; &#91;0A&#93; &#91;95&#93; &#91;5F&#93;_&#91;B3&#93; &#91;0C&#93; &#91;17&#93; &#91;28&#93;&#40;&#91;46&#93;F&#91;56&#93;V&#91;63&#93;c&#91;F3&#93;
 &#91;A5&#93; &#91;29&#93;&#41;&#91;32&#93;2&#91;08&#93; &#91;87&#93; &#91;AB&#93; &#91;32&#93;2&#91;57&#93;W&#91;D1&#93; &#91;77&#93;w&#91;99&#93; &#91;E7&#93; &#91;FD&#93; &#91;FF&#93;

 &#91;5A&#93;Z&#91;09&#93; &#91;0B&#93; &#91;24&#93;$&#91;FD&#93;
 &#91;A5&#93; &#91;15&#93; &#91;32&#93;2&#91;08&#93; &#91;90&#93; &#91;66&#93;f&#91;81&#93; &#91;18&#93;

 &#91;5A&#93;Z&#91;04&#93; &#91;03&#93; &#91;07&#93; &#91;10&#93; &#91;2C&#93;,&#91;2F&#93;/&#91;00&#93; &#91;E7&#93; &#91;1E&#93; &#91;CB&#93; &#91;99&#93; &#91;00&#93; &#91;4D&#93;M&#91;FE&#93;
 &#91;A5&#93; &#91;49&#93;I&#91;32&#93;2&#91;C8&#93; &#91;BB&#93; &#91;CD&#93; &#91;CF&#93; &#91;5E&#93;^&#91;47&#93;G&#91;D3&#93; &#91;9E&#93; &#91;AB&#93; &#91;CC&#93; &#91;09&#93; &#91;5B&#93;&#91;&#91;CA&#93; &#91;6D&#93;m&#91;19&#93; &#91;AB&#93; &#91;A9&#93; &#91;2F&#93;/&#91;F3&#93;

 &#91;5A&#93;Z&#91;01&#93; &#91;0A&#93; &#91;E5&#93; &#91;AD&#93; &#91;2C&#93;,&#91;67&#93;g&#91;FA&#93; &#91;33&#93;3&#91;17&#93; &#91;61&#93;a&#91;AD&#93; &#91;24&#93;$&#91;FD&#93;
 &#91;A5&#93; &#91;29&#93;&#41;&#91;32&#93;2&#91;E8&#93; &#91;CD&#93; &#91;6E&#93;n&#91;B4&#93; &#91;D1&#93; &#91;A8&#93; &#91;22&#93;"&#91;DD&#93; &#91;79&#93;y&#91;FF&#93; 

 &#91;00&#93; <BREAK>
...Then the link went quiet. After about 10-15 seconds I turned on the PSP...

Code: Select all

 &#91;5A&#93;Z&#91;09&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;09&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;A5&#93; &#91;15&#93; &#91;32&#93;2&#91;08&#93; &#91;4C&#93;L&#91;B3&#93; &#91;20&#93; &#91;C2&#93;
 &#91;5A&#93;Z&#91;09&#93; &#91;63&#93;c&#91;74&#93;t&#91;FE&#93;
 &#91;A5&#93; &#91;19&#93; &#91;32&#93;2&#91;88&#93; &#91;41&#93;A&#91;21&#93;!&#91;23&#93;#&#91;AA&#93; &#91;F4&#93;
 &#91;5A&#93;Z&#91;0D&#93; &#91;03&#93; &#91;07&#93; &#91;90&#93; &#91;ED&#93; &#91;DA&#93; &#91;4D&#93;M&#91;D6&#93; &#91;3C&#93;<&#91;5F&#93;_&#91;4A&#93;J&#91;92&#93; &#91;0C&#93;
 &#91;A5&#93; &#91;49&#93;I&#91;32&#93;2&#91;88&#93; &#91;1D&#93; &#91;2C&#93;,&#91;E6&#93; &#91;A0&#93; &#91;AF&#93; &#91;7D&#93;&#125;&#91;62&#93;b&#91;30&#93;0&#91;29&#93;&#41;&#91;6D&#93;m&#91;FB&#93; &#91;03&#93; &#91;0D&#93; &#91;5D&#93;&#93;&#91;5F&#93;_&#91;E9&#93; &#91;39&#93;9&#91;75&#93;u
 &#91;5A&#93;Z&#91;00&#93; &#91;0A&#93; &#91;F5&#93; &#91;59&#93;Y&#91;AA&#93; &#91;64&#93;d&#91;27&#93;'
 &#91;5A&#93;Z&#91;23&#93;#&#91;0F&#93; &#91;5B&#93;&#91;&#91;AA&#93; &#91;FF&#93; &#91;A5&#93; &#91;29&#93;&#41;&#91;32&#93;2&#91;48&#93;H&#91;7A&#93;z&#91;36&#93;6&#91;D3&#93; &#91;2C&#93;,&#91;55&#93;U&#91;58&#93;X&#91;FA&#93; &#91;FC&#93; &#91;31&#93;1
And then the battery connection fell out.

From this, it looks like commands sent from the PSP to the battery start with 0x5A and the responses sent from the battery to the PSP start with 0xA5.

I have other logs of the normal powered-up operation. The communication occurs in bursts spaced 5 seconds apart, in a larger pattern that seems to cycle every 30 seconds:

Code: Select all

 <PSP turned on, 10 seconds of silence>
 &#91;5A&#93;Z&#91;00&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;5A&#93;Z&#91;09&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;A5&#93; &#91;15&#93; &#91;32&#93;2&#91;08&#93; &#91;4C&#93;L&#91;B3&#93; &#91;20&#93; &#91;C2&#93;

 &#91;5A&#93;Z&#91;00&#93; &#91;63&#93;c&#91;74&#93;t&#91;FE&#93; &#91;A5&#93; &#91;19&#93; &#91;32&#93;2&#91;88&#93; &#91;41&#93;A&#91;21&#93;!&#91;23&#93;#&#91;AA&#93; &#91;F4&#93;
 &#91;5A&#93;Z&#91;5B&#93;&#91;&#91;06&#93; &#91;1C&#93; &#91;20&#93; &#91;AF&#93; &#91;61&#93;a&#91;B8&#93; &#91;94&#93; &#91;0B&#93; &#91;B5&#93; &#91;25&#93;%&#91;14&#93; &#91;AD&#93;
 &#91;A5&#93; &#91;49&#93;I&#91;32&#93;2&#91;E8&#93; &#91;AE&#93; &#91;31&#93;1&#91;25&#93;%&#91;0E&#93; &#91;26&#93;&&#91;7E&#93;~&#91;D2&#93; &#91;F9&#93;

 &#91;5A&#93;Z&#91;E9&#93; &#91;32&#93;2&#91;1F&#93; &#91;0B&#93; &#91;4A&#93;J&#91;2A&#93;*&#91;EA&#93; &#91;B0&#93;
 &#91;5A&#93;Z&#91;29&#93;&#41;&#91;0A&#93; &#91;F5&#93; &#91;3C&#93;<&#91;50&#93;P&#91;0E&#93; &#91;27&#93;'&#91;F8&#93; &#91;D2&#93; &#91;1D&#93; &#91;06&#93; &#91;1D&#93; &#91;FF&#93;
 &#91;A5&#93; &#91;29&#93;&#41;&#91;32&#93;2&#91;88&#93; &#91;54&#93;T&#91;6F&#93;o&#91;BE&#93; &#91;77&#93;w&#91;3F&#93;?&#91;BD&#93; &#91;22&#93;"&#91;2A&#93;*&#91;4A&#93;J&#91;E1&#93; 

 <1 second of silence>
 &#91;5A&#93;Z&#91;09&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;A5&#93; &#91;15&#93; &#91;32&#93;2&#91;08&#93; &#91;90&#93; &#91;66&#93;f&#91;81&#93; &#91;18&#93;
 &#91;5A&#93;Z&#91;09&#93; &#91;3B&#93;;&#91;C6&#93; &#91;FA&#93;
 &#91;A5&#93; &#91;11&#93; &#91;33&#93;3&#91;08&#93; &#91;D8&#93; &#91;B0&#93; &#91;90&#93;
 &#91;5A&#93;Z&#91;01&#93; &#91;4B&#93;K&#91;A4&#93; &#91;FA&#93;
 &#91;A5&#93; &#91;11&#93; &#91;33&#93;3&#91;E8&#93; &#91;0A&#93; &#91;A0&#93; &#91;D6&#93;
 &#91;5A&#93;Z&#91;00&#93; &#91;13&#93; &#91;16&#93; &#91;FD&#93;
 &#91;A5&#93; &#91;0D&#93; &#91;32&#93;2&#91;48&#93;H&#91;EC&#93; &#91;F3&#93;
 &#91;5A&#93;Z&#91;09&#93; &#91;23&#93;#&#91;EC&#93; &#91;FA&#93;
 &#91;A5&#93; &#91;11&#93; &#91;33&#93;3&#91;C8&#93; &#91;FF&#93; &#91;4D&#93;M&#91;FE&#93;
 &#91;5A&#93;Z&#91;00&#93; &#91;1B&#93; &#91;04&#93; &#91;F5&#93;
 &#91;A5&#93; &#91;11&#93; &#91;33&#93;3&#91;E8&#93; &#91;D2&#93; &#91;90&#93; &#91;DF&#93; 

 <5 seconds of silence>
 &#91;5A&#93;Z&#91;09&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;A5&#93; &#91;15&#93; &#91;32&#93;2&#91;08&#93; &#91;90&#93; &#91;B2&#93; &#91;81&#93; &#91;12&#93; 

 <5 seconds of silence>
 &#91;5A&#93;Z&#91;00&#93; &#91;3B&#93;;&#91;C6&#93; &#91;FA&#93;
 &#91;A5&#93; &#91;11&#93; &#91;33&#93;3&#91;08&#93; &#91;D8&#93; &#91;B0&#93; &#91;90&#93; 

 <5 seconds of silence>
 &#91;5A&#93;Z&#91;01&#93; &#91;4B&#93;K&#91;A4&#93; &#91;FA&#93;
 &#91;A5&#93; &#91;11&#93; &#91;33&#93;3&#91;48&#93;H&#91;16&#93; &#91;58&#93;X&#91;F8&#93; 

 <5 seconds of silence>
 &#91;5A&#93;Z&#91;09&#93; &#91;13&#93; &#91;2C&#93;,&#91;FD&#93;
 &#91;A5&#93; &#91;0D&#93; &#91;32&#93;2&#91;48&#93;H&#91;EC&#93; &#91;F3&#93; 

 <5 seconds of silence>
 &#91;5A&#93;Z&#91;09&#93; &#91;23&#93;#&#91;EC&#93; &#91;FA&#93;
 &#91;A5&#93; &#91;11&#93; &#91;33&#93;3&#91;C8&#93; &#91;FE&#93; &#91;54&#93;T

 <2 seconds of silence>
 &#91;5A&#93;Z&#91;09&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;A5&#93; &#91;15&#93; &#91;32&#93;2&#91;08&#93; &#91;50&#93;P&#91;B2&#93; &#91;81&#93; &#91;C9&#93;
 &#91;5A&#93;Z&#91;05&#93; &#91;03&#93; &#91;07&#93; &#91;B0&#93; &#91;7E&#93;~&#91;FC&#93; &#91;36&#93;6&#91;6B&#93;k&#91;49&#93;I&#91;6B&#93;k&#91;44&#93;D&#91;79&#93;y&#91;D3&#93; &#91;FE&#93;
 &#91;A5&#93; &#91;49&#93;I&#91;32&#93;2&#91;28&#93;&#40;&#91;11&#93; &#91;6D&#93;m&#91;1C&#93; &#91;68&#93;h&#91;D2&#93; &#91;9C&#93; &#91;00&#93; &#91;63&#93;c&#91;C5&#93; &#91;FC&#93; &#91;89&#93; &#91;4D&#93;M&#91;C5&#93; &#91;68&#93;h&#91;B7&#93; &#91;61&#93;a&#91;6E&#93;n&#91;E8&#93;
 &#91;5A&#93;Z&#91;29&#93;&#41;&#91;0A&#93; &#91;65&#93;e&#91;93&#93; &#91;DD&#93; &#91;28&#93;&#40;&#91;E6&#93; &#91;9A&#93; &#91;E4&#93; &#91;0C&#93; &#91;33&#93;3&#91;27&#93;'
 &#91;A5&#93; &#91;29&#93;&#41;&#91;32&#93;2&#91;88&#93; &#91;46&#93;F&#91;75&#93;u&#91;48&#93;H&#91;A2&#93; &#91;5B&#93;&#91;&#91;7E&#93;~&#91;E8&#93; &#91;F4&#93; &#91;36&#93;6&#91;FF&#93; 

 <2 seconds of silence>
 &#91;5A&#93;Z&#91;09&#93; &#91;16&#93; &#91;08&#93; &#91;F5&#93;
 &#91;A5&#93; &#91;11&#93; &#91;33&#93;3&#91;48&#93;H&#91;D2&#93; &#91;D0&#93; &#91;FF&#93; 

 <10 seconds of silence>
 &#91;5A&#93;Z&#91;00&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;A5&#93; &#91;15&#93; &#91;32&#93;2&#91;08&#93; &#91;10&#93; &#91;A2&#93; &#91;81&#93; &#91;93&#93; 

 <5 seconds of silence>
 &#91;5A&#93;Z&#91;09&#93; &#91;3B&#93;;&#91;C6&#93; &#91;FA&#93;
 &#91;A5&#93; &#91;11&#93; &#91;33&#93;3&#91;08&#93; &#91;D8&#93; &#91;B0&#93; &#91;90&#93; 

 <5 seconds of silence>
 &#91;5A&#93;Z&#91;09&#93; &#91;4B&#93;K&#91;A4&#93; &#91;FA&#93;
 &#91;A5&#93; &#91;11&#93; &#91;33&#93;3&#91;28&#93;&#40;&#91;16&#93; &#91;98&#93; &#91;F8&#93; 

 <5 seconds of silence>
 &#91;5A&#93;Z&#91;01&#93; &#91;13&#93; &#91;16&#93; &#91;FD&#93;
 &#91;A5&#93; &#91;0D&#93; &#91;32&#93;2&#91;48&#93;H&#91;EC&#93; &#91;F3&#93; 

 <2 seconds of silence>
 &#91;5A&#93;Z&#91;00&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;A5&#93; &#91;15&#93; &#91;32&#93;2&#91;08&#93; &#91;90&#93; &#91;44&#93;D&#91;81&#93; &#91;28&#93;&#40;
 &#91;5A&#93;Z&#91;05&#93; &#91;03&#93; &#91;07&#93; &#91;10&#93; &#91;53&#93;S&#91;3D&#93;=&#91;00&#93; &#91;AA&#93; &#91;DF&#93; &#91;D6&#93; &#91;3C&#93;<&#91;2D&#93;-&#91;20&#93;
 &#91;A5&#93; &#91;49&#93;I&#91;32&#93;2&#91;48&#93;H&#91;AE&#93; &#91;F6&#93; &#91;37&#93;7&#91;50&#93;P&#91;B9&#93; &#91;8D&#93; &#91;EE&#93; &#91;56&#93;V&#91;BD&#93; &#91;9A&#93; &#91;97&#93; &#91;17&#93; &#91;5B&#93;&#91;&#91;38&#93;8&#91;A7&#93; &#91;C5&#93; &#91;9C&#93; &#91;AB&#93;
 &#91;5A&#93;Z&#91;01&#93; &#91;0A&#93; &#91;95&#93; &#91;13&#93; &#91;5B&#93;&#91;&#91;22&#93;"&#91;CD&#93; &#91;52&#93;R&#91;02&#93; &#91;C5&#93; &#91;1A&#93; &#91;EE&#93; &#91;FF&#93;
 &#91;A5&#93; &#91;29&#93;&#41;&#91;32&#93;2&#91;A8&#93; &#91;1F&#93; &#91;6E&#93;n&#91;4C&#93;L&#91;2B&#93;+&#91;E7&#93; &#91;09&#93; &#91;63&#93;c&#91;BC&#93; &#91;AB&#93; 

 <2 seconds of silence>
 &#91;5A&#93;Z&#91;01&#93; &#91;23&#93;#&#91;F6&#93; &#91;FA&#93;
 &#91;A5&#93; &#91;11&#93; &#91;33&#93;3&#91;E8&#93; &#91;F9&#93; &#91;53&#93;S&#91;FF&#93; 

 <5 seconds of silence>
 &#91;5A&#93;Z&#91;01&#93; &#91;1B&#93; &#91;04&#93; &#91;F5&#93;
 &#91;A5&#93; &#91;11&#93; &#91;33&#93;3&#91;48&#93;H&#91;D2&#93; &#91;D0&#93; &#91;FF&#93; 

 <10 seconds of silence>
 &#91;5A&#93;Z&#91;09&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;A5&#93; &#91;15&#93; &#91;32&#93;2&#91;08&#93; &#91;10&#93; &#91;62&#93;b&#91;81&#93; &#91;3A&#93;&#58;

 <5 seconds of silence>
 &#91;5A&#93;Z&#91;09&#93; &#91;3B&#93;;&#91;8C&#93; &#91;FA&#93;
 &#91;A5&#93; &#91;11&#93; &#91;33&#93;3&#91;08&#93; &#91;D8&#93; &#91;B0&#93; &#91;90&#93; 

 <5 seconds of silence>
 &#91;5A&#93;Z&#91;09&#93; &#91;4B&#93;K&#91;A4&#93; &#91;FA&#93;
 &#91;A5&#93; &#91;11&#93; &#91;33&#93;3&#91;48&#93;H&#91;2C&#93;,&#91;B0&#93; &#91;E3&#93; 

 <2 seconds of silence>
 &#91;5A&#93;Z&#91;09&#93; &#91;0B&#93; &#91;26&#93;&&#91;FD&#93;
 &#91;A5&#93; &#91;15&#93; &#91;32&#93;2&#91;08&#93; &#91;90&#93; &#91;58&#93;X&#91;20&#93; &#91;8F&#93;
 &#91;5A&#93;Z&#91;2D&#93;-&#91;03&#93; &#91;06&#93; &#91;90&#93; &#91;BE&#93; &#91;45&#93;E&#91;D2&#93; &#91;7F&#93;&#91;E1&#93; &#91;0D&#93; &#91;08&#93; &#91;52&#93;R&#91;28&#93;&#40;&#91;FF&#93;
 &#91;A5&#93; &#91;49&#93;I&#91;32&#93;2&#91;48&#93;H&#91;6B&#93;k&#91;AF&#93; &#91;40&#93;@&#91;95&#93; &#91;F2&#93; &#91;C2&#93; &#91;45&#93;E&#91;16&#93; &#91;5E&#93;^&#91;BC&#93; &#91;BF&#93; &#91;98&#93; &#91;F3&#93; &#91;11&#93; &#91;B0&#93; &#91;38&#93;8&#91;06&#93; &#91;FF&#93;
 &#91;5A&#93;Z&#91;09&#93; &#91;0A&#93; &#91;C5&#93; &#91;6A&#93;j&#91;9B&#93; &#91;64&#93;d&#91;D7&#93; &#91;C2&#93; &#91;03&#93; &#91;51&#93;Q&#91;30&#93;0&#91;C5&#93; &#91;FE&#93;
 &#91;A5&#93; &#91;29&#93;&#41;&#91;32&#93;2&#91;28&#93;&#40;&#91;9F&#93; &#91;5F&#93;_&#91;F1&#93; &#91;C7&#93; &#91;25&#93;%&#91;F6&#93; &#91;99&#93; &#91;B3&#93; &#91;A9&#93; &#91;FA&#93; 

 <2 seconds of silence>
 &#91;5A&#93;Z&#91;09&#93; &#91;13&#93; &#91;2C&#93;,&#91;FD&#93;
 &#91;A5&#93; &#91;0D&#93; &#91;32&#93;2&#91;48&#93;H&#91;EC&#93; &#91;F3&#93; 

 <5 seconds of silence>
 &#91;5A&#93;Z&#91;01&#93; &#91;23&#93;#&#91;F6&#93; &#91;FA&#93;
 &#91;A5&#93; &#91;11&#93; &#91;33&#93;3&#91;88&#93; &#91;9F&#93; &#91;66&#93;f&#91;FF&#93; 

 <5 seconds of silence>
 &#91;5A&#93;Z&#91;09&#93; &#91;1B&#93; &#91;00&#93; &#91;F5&#93;
 &#91;A5&#93; &#91;11&#93; &#91;33&#93;3&#91;88&#93; &#91;92&#93; &#91;98&#93; 
That was about as far as I got in understanding this protocol. Does anyone else see more of a pattern?
Art
Posts: 642
Joined: Wed Nov 09, 2005 8:01 am

Post by Art »

That serial line from the battery is used primarily to tell the PSP the battery
temperature.
It's used in mobile phones as well.
If the battery doesn't have the cell damper like nicads and NiMh do,
the battery will explode if it gets too hot under charging conditions.
There might be extra 'thinking' going on inside the battery to work out
how much charge time is left since the PSP tells the user this info.
That would need to be worked out inside the battery because once you
changed the battery, the data would be different (an older battery has less life per charge).

So you guys remove chips and dump firmware and can't figure out that :D

As suggested in this thread, it isn't that interesting, and cannot expand our
capabilities at all.
Art.
Dr. Vegetable
Posts: 171
Joined: Mon Nov 14, 2005 1:32 am
Location: Boston, Massachusetts
Contact:

Post by Dr. Vegetable »

Art wrote:That serial line from the battery is used primarily to tell the PSP the battery temperature.
It's used in mobile phones as well.
Great! Since you seem to know so much about this, why don't you explain to me how the data is formatted in these messages: What was the temperature and charge level of my battery pack when I recorded this dump? What is the serial number of the battery pack?? How does the PSP identify a "legitimate" Sony battery???
Art wrote:So you guys remove chips and dump firmware and can't figure out that :D

As suggested in this thread, it isn't that interesting, and cannot expand our capabilities at all.
The picture that is emerging is that this port may have other responsibilities beyond simply monitoring the battery recharge state. I understand that the communications logs I monitored are not going to tell us how to put the PSP into service mode. However, understanding the protocol used to talk to the battery could provide some important clues, such as:
  • Perhaps the Debug Mode uses similar commands and/or framing, and so knowing how the PSP talks to a battery might help us understand how the PSP talks to a diagnostic console.
  • Maybe one day someone will be reading through disassembled firmware and stumble upon the command handler for the battery port. If we know what commands are used for routine battery communication, we will be able to focus on any "extra" commands that might be decoded by the firmware.
So Art, if you have nothing useful to add to this discussion, then please STFU and go back to playing with your GameBoy.
mrn
Posts: 116
Joined: Wed Nov 02, 2005 2:26 am

Post by mrn »

a good link on battery circuits: http://batteryuniversity.com/partone-17.htm

.plus everything from the main page .)

ok, i think there is much -much more inside the PSP battery as we think.
why? in normal mobile accus there used to be 1 or 2 pcs of an 8-pin chip
plus one 6-pin circuit. but there we see a HUGE IC. for what? these days everything is integrated...

q1: how does the communication look like with a "X2" BATTERY PACK?
q2: how does the circuitry look like in the "X2" BATTERY PACK?
q3: are the X2 producers involved (assuming they are 3rd parties)
and finally, q4 for Dr.Vegetable:
q4: cam you measure the communication of the battery from one of the latest sony-ericcson phones, pls?
Art
Posts: 642
Joined: Wed Nov 09, 2005 8:01 am

Post by Art »

why don't you explain to me how the data is formatted in these messages
As I said, I don't consider it the most worthwhile investment in time, and have little intrest in the battery connector.
I think it likely that there is more potential at the headphone serial connector,
and was digging around here because I am biulding a headphone remote emulator.
If I wanted to tell you the left over charge time and temp of your battery
at the time of your capture, I'd consider it a job more suited to a
microcontroller for a repeatable result since timing is involved.. rather than trying to match timing of each tx with a Windows terminal.
What is the serial number of the battery pack??
You must have me mixed up with someone who suggested there is a guy at Sony
who sits at a desk and manually enters serial numbers from battery
stickers into every individual battery firmware code (or vice versa).
So Art, if you have nothing useful to add to this discussion, then please STFU
I thought I did since nobody had mentioned the obvious (temperature) until then, I simply answered a question that had not been answered,
and I didn't need to interpret your serial dump to do so:
BTW: I was wondering why a battery has a serial connector,..... Why didn't Sony integrated this into the PSP but in the battery?
As it happens I do know a little about it.
Temerature is one of the only two ways that any charging circuit can tell if a battery is charged
without being overcharged, and any decent charger will employ both.
and I think the flaming is a little harsh. I only meant to be light hearted about it.
Art.
ooPo
Site Admin
Posts: 2023
Joined: Sat Jan 17, 2004 9:56 am
Location: Canada
Contact:

Post by ooPo »

So Art, if you have nothing useful to add to this discussion, then please STFU and go back to playing with your GameBoy.
Keep the personal attacks out of this otherwise very interesting conversation please.
HaQue
Posts: 91
Joined: Fri Nov 25, 2005 8:52 am
Location: Adelaide, Australia
Contact:

Post by HaQue »

has anyone looked at the way other devices interface serially with the battery, especially sony products? This could save alot of work if they are similar.

Also, given the tricky way sony used serial data on the PSX discs, I wouldnt rule ANYTHING out!
Art
Posts: 642
Joined: Wed Nov 09, 2005 8:01 am

Post by Art »

This thread got me thinking...
At the risk of getting flamed again for suggesting something obvious....

I wonder if any of the data packets are sent just prior to the update of data
displayed on the System Settings=>Battery Information screen.
This data seems to be updated to screen at erratic intervals.

I'm not suggesting that the 'Hours Left' figure is sent straight from the battery
since you can make the estimate jump up and down by switching the
screen back and forth from minimun to maximum brightness and waiting for the figure to change each time.
... now that is somewhat interesting.. some programmer's forethought there.
Art.
Post Reply