View Single Post
Old 02-08-2023, 07:06 AM   #57
Renate
Onyx-maniac
Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.
 
Posts: 4,010
Karma: 18026955
Join Date: Feb 2012
Device: Nook NST, Glow2, 3, 4, '21, Kobo Aura2, Poke3, Poke5, Go6
Quote:
Originally Posted by denisuu View Post
Yea I never understood how people find these code sequences.
This whole post has been changed.

Well, everything is more complicated than I thought.
I don't think that the special modes detection is implemented correctly.

Things that I do know now:

There are three things detected as influencing boot modes and three things that don't
  • The power switch
  • The backspace or the down arrow keys. They are effectively the same.
  • The other 3 arrow keys are detected but not used in any decisions

The power button
The power button must be held down shortly after the device reboots.
If it is not detected at that instant the boot proceeds normally.
If it is detected a measurement period starts where the power key must be pushed 5 more times.
This will get you into recovery. The timing can be tricky.
Code:
Pressed down Power key[258].
======> GetBootIntoModeRecovery detect begin. Power key Down [5193 ms]
======> GetBootIntoModeRecovery Power key Up [8495 ms]
======> BootIntoMode detect seg[0] Power key Down [8795 ms]
======> BootIntoMode detect seg[0] Power key Up [8995 ms]
======> BootIntoMode detect seg[1] Power key Down [9095 ms]
======> BootIntoMode detect seg[1] Power key Up [9495 ms]
======> BootIntoMode detect seg[2] Power key Down [9695 ms]
======> BootIntoMode detect seg[2] Power key Up [9795 ms]
======> BootIntoMode detect seg[3] Power key Down [9995 ms]
======> BootIntoMode detect seg[3] Power key Up [10196 ms]
======> BootIntoMode detect seg[4] Power key Down [10296 ms]
======> BootIntoMode detect seg[4] Power key Up [10496 ms]
======> BootIntoRecovery detected. [10496 ms]
======> GetBootIntoModeRecovery detect end [10496 ms]
KeyPress:258, BootReason:0
Fastboot=0, Recovery:1
If you are doing this blind, it might make sense to just push it on and off continuously.
That means that 50% of the time the start will not be detected.
But if it is detected then it will probably catch your five pushes.

The UART
As with the power button something must occur at the beginning of the boot to start a measurement period.
There seems to be something wrong with the timeout logic.
You may get to either recovery or EDL mode.

All the Onyx need 1.8V logic level.

If you only have a 3.3V USB UART adapter you can still make it go.
Just don't connect it directly!
You use the transmit out of the USB UART through a resistor divider to the Onyx UART receive pin.
You can't monitor the other direction, so you only have two wires, the ground and the transmit to the Onyx.
More details if anybody's interested.

Last edited by Renate; 02-08-2023 at 12:42 PM.
Renate is online now   Reply With Quote