1 1
maracuja

Bluetooth - "Initialization timed out" on AP6212A / Orange Pi Zero Plus2 H3

Recommended Posts

Hello...

 

I've got an Orange Pi Zero Plus 2 H3 with Armbian Stretch.

Kernel: 4.14.70-sunxi

 

armbianEnv.txt:

Quote

verbosity=1
logo=disabled
console=serial
disp_mode=1920x1080p60
overlay_prefix=sun8i-h3
overlays=uart1 uart2 uart3 usbhost2 usbhost3

...
param_uart1_rtscts=1
param_uart2_rtscts=1
param_uart3_rtscts=1
usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u

 

I did:

cp -a /lib/firmware/ap6212/fw_bcm43438a1.bin /lib/firmware/brcm/brcmfmac43430-sdio.bin

 

dmesg when searching for "brcm" gives me:

[    8.123186] brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac43430-sdio.bin for chip 0x00a9a6(43430) rev 0x000001
[    8.256708] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Oct  8 2016 15:31:47 version 7.46.57.4.ap.r4 (A1 Station/P2P) FWID 01-3621395e es6.c5.n4.a3

 

In /etc/default/ap6212 I have:

PORT=ttyS1

 

But the script /etc/init.d/ap6212-bluetooth is failing...

with the error "Initialization timed out."

 

Is there any "how-to" for the Orange Pi Zero Plus 2 to get Bluetooth working?

Share this post


Link to post
Share on other sites
29 minutes ago, maracuja said:

Is there any "how-to" for the Orange Pi Zero Plus 2 to get Bluetooth working?

As far as I remember, no Devs have started any work on Bluetooth yet...

Even if firmware is loaded, this is primarily for WiFi.

Share this post


Link to post
Share on other sites

Well, it would be a good hint to put a remark in the download section of Armbian - at least for the Orange Pi Zero Plus2.

When downloading Armbian it does not say anything about Bluetooth being completely dysfunctional.

Share this post


Link to post
Share on other sites
57 minutes ago, maracuja said:

it does not say anything about Bluetooth being completely dysfunctional.

 

Developing, testing and writing requires someone's time/effort. The problem is that it works on some boards, while it doesn't on others.

This is community project and this way you can change things.

Share this post


Link to post
Share on other sites

I can only offer to test setup instructions on the boards I have, if anyone has recommendations.

I'd be glad to post the results here.

 

If Bluetooth is working on some boards with the same chip (AP6212A) then it should actually work on the Zero Plus2 H3 too.

Share this post


Link to post
Share on other sites
27 minutes ago, maracuja said:

I'd be glad to post the results here.


That's fine but still someone needs to take care. We need people that will deal with those results before they get lots in a black hole called forum.

 

27 minutes ago, maracuja said:

If Bluetooth is working on some boards with the same chip (AP6212A) then it should actually work on the Zero Plus2 H3 too.


Unfortunately we didn't cover that one, but AP6210 and some others ... Beside that, there are two versions of 6212A which needs different firmware. At least for wireless. It's a small mess. 

 

IMO, if you want to solve this, you "only" need a right portion of persistence. How-to is most likely present on this forum or can be found on the internet.

Share this post


Link to post
Share on other sites

I could make some tiny progress:

 

First I checked the orange pi zero plus 2 schematics to be sure it is using UART1 for Bluetooth. Yes it is.

Then I had a look at the current device tree - somebody wrote that there should be 2 addresses in the pinctrl-0 entry.

Mine had only 1 address.


I decompiled /boot/dtb-4.14.65-sunxi/sun8i-h3-orangepi-zeroplus2.dtb and had a look at the entry serial@01c28400

This is what is loooks like

Quote

serial@01c28400 {
  compatible = "snps,dw-apb-uart";
  reg = <0x1c28400 0x400>;
  interrupts = <0x0 0x1 0x4>;
  reg-shift = <0x2>;
  reg-io-width = <0x4>;
  clocks = <0x6 0x3f>;
  resets = <0x6 0x32>;
  dmas = <0x1f 0x7 0x1f 0x7>;
  dma-names = "rx", "tx";
  status = "okay";
  pinctrl-names = "default";
  pinctrl-0 = <0x24 0x25>;
  linux,phandle = <0x66>;
  phandle = <0x66>;
};

 

Here you can see pinctrl-0 looks okay.

So it must be the overlay that messes this up. I also looked at the uart1 overlay file (decompiled it) but all these things are new to me, so I gave up on it.

But something different looked promising: The status field is "okay", so it is enabled, right in the /boot/dtb-4.14.65-sunxi/sun8i-h3-orangepi-zeroplus2.dtb

I guess I don't even need an overlay to enable it then?

 

So knowing that the overlay messes the pinctrl-0 entry up, and guessing that I don't even need it, I just removed the uart1 overlay from the /boot/armbianEnv.txt and rebooted.

 

Now the output of my script looks like this:

Quote

bcm43xx_init
Set Controller UART speed to 115200 bit/s
Flash firmware /etc/firmware/ap6212/BCM43430A1.hcd
Initialization timed out.

 

Before it only said "Initialization timed out" with no UART speed output or Flash firmware output.

It's still not working...

 

1) I copied BCM43430A1.hcd from some site on the internet, having the same MD5 hash as a user that claims it's been working on this orange pi. Maybe I should've used the original one shipped with armbian... (which had a different MD5 hash)... now I've restored the original file (simply by deleting it, the init script copies the original one over) - but same result

2) I've also removed param_uart1_rtscts=1 from armbianEnv.txt - I don't know if this affects anything...

Share this post


Link to post
Share on other sites

Just for the sake of completeness:

I've changed the init script for AP6212, I've inserted this:

 

Quote

/usr/local/bin/dmem2 0x1f00060 b 1
echo 10 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio10/direction
echo 0 > /sys/class/gpio/gpio10/value
echo 1 > /sys/class/gpio/gpio10/value
sleep 0.1
 

 

Share this post


Link to post
Share on other sites
On 10/25/2018 at 8:53 AM, maracuja said:

Just for the sake of completeness:

I've changed the init script for AP6212, I've inserted this:

 

 

 

I have BPI-M2+ and I don't have /usr/bin/dmem2 in the system

apt install dev2mem
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package dev2mem

 

How do i install dmem2 ?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
1 1