[Spirit FM] mikereidis:
OK, looks a bit better Idk.

One thing strange in your log is this line:

D/bcprp ( 6324): main (re)-init: -1342166641

The number should normally be 0 or a small integer representing the number of restart attempts. This is likely due to an un-initialised variable in my code. Normally I always initialise such variables, despite that the C libraries these days usually do it for us, but I missed this one. I think your C runtime libraries don't do this for some reason, which might make a lot of low level software more likely to malfunction on your phone. Regardless, I'll go through the thousands of lines of C code in my app and fix all the un-initialised variables I find and I think that should make success much more likely.

I'd like you to try the new v2.0.15, but let's just try to get the bcprp running properly first. We need to see a line like this via "adb logcat" before the app will possibly work for you (only the 2060 will be different):

D/bcprp ( 2060): srv_len: 16 fam: 2 addr: 0x7f000001 port: 2112

Are you running "adb shell" from a Windows PC or a Linux or other PC ? Hopefully you can hit your Up key and edit the last command line entered.

Run "adb logcat" from 1 Window or Tab. From another Window or Tab try to start bcprp with some different baudrate parameters to see if one works. Go back to the "adb logcat" window after each bcprp start to see the results. If you get the "magic" srv_len line above, you have found good parameters to enter into the bcfm script file.

From your logs I think the initial baudrate is not set properly. The brcm_patchram_plus utility always uses 115200, but I'm thinking that the closed source btld is using a different baudrate, The bcprp code used to cycle through a few different baudrates when trying to initialise the UART. It doesn't do that now, but you can set the initial baudrate with a new "--initbaud" option. I think it's probably best if you can copy and paste the command lines straight from this post so you don't have issues with having to re-type and missing double dashes or whatever.

So from the bcpcp window, try these commands. The command should run and stay running, and after 10 seconds or less you should see output in the "adb logcat" window, hopefully the magic "srv_len" line. You could leave the bcprp running for a while, like 20-60 seconds to see if anything good happens. When you give up, use Ctrl-C to kill the running bcprp and try a different baudrate.

adb shell bcprp --initbaud 9600 --baudrate 3000000 --patchram /system/bin/BCM4329B1_002.002.023.0534.0590.hcd /dev/s3c2410_serial0

adb shell bcprp --initbaud 9600 --baudrate 115200 --patchram /system/bin/BCM4329B1_002.002.023.0534.0590.hcd /dev/s3c2410_serial0

adb shell bcprp --initbaud 3000000 --baudrate 3000000 --patchram /system/bin/BCM4329B1_002.002.023.0534.0590.hcd /dev/s3c2410_serial0

And if none of the above works, try

adb shell bcprp --initbaud 115200 --baudrate 115200 --patchram /system/bin/BCM4329B1_002.002.023.0534.0590.hcd /dev/s3c2410_serial0

And then try different values for --initbaud . These are the possible values for both --initbaud and --baudrate:

9600

19200

38400

57600

115200

230400

460800

500000

576000

921600

1000000

1152000

1500000

2000000

2500000

3000000

3500000

4000000

--initbaud is most important as it's the initial baudrate to get things started. After that, bcprp switches to the --baudrate value

If you see in the logcat a line with "baudrate_reset", but it never gets to "srv_len", then you have initial baudrate success but the baudrate reset isn't working and different --baudrate values could be tried. I think if both baudrates are set to the same value, it should work, assuming the initbaud is set OK.

Looking forward to hear of your results...