New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TW#15840] Bluetooth Controller: How to send/receive SCO audio packets? #1118

Open
mringwal opened this Issue Oct 13, 2017 · 13 comments

Comments

Projects
None yet
6 participants
@mringwal
Contributor

mringwal commented Oct 13, 2017

This might be more of a 'how can I..?' question then an actual issue (well, I could say my issue is that I cannot find the necessary documentation...)

Does the ESP32 Bluetooth Controller support sending/receiving of SCO packets for Hands-free Profile?

I did a quick test with BTstack's HFP AG example and was able to open an SCO connection.
A connected speaker did receive some noise for a bit (it should have been a sine wave though), but I didn't see a single SCO packet getting received from the Bluetooth Controller via the VHCI interface.

If SCO is supported, what is needed to receive SCO packets via the VHCI interface?

As a follow up: Is there an easy way to track the speed of outgoing SCO packets? The HCI interface defines the HCI_Write_Synchronous_Flow_Control_Enable (which BTstack sends), but I didn't see no Number Completed Packets for the SCO connection.

HCI_Write_Synchronous_Flow_Control_Enable Overview:

  • TI's CC256x chipset support it
  • on USB Bluetooth Controllers isochronous endpoints are used (hence provides flow control)
  • UART Broadcom/Cypress Controllers don't support it.

Thanks for reading this far!

@FayeY FayeY changed the title from Bluetooth Controller: How to send/receive SCO audio packets? to [TW#15840] Bluetooth Controller: How to send/receive SCO audio packets? Oct 16, 2017

@mywang-espressif

This comment has been minimized.

mywang-espressif commented Oct 30, 2017

Hi @mringwal , let me try to answer the first question first. For ESP32 bluetooth controller, SCO packets can be configured with two data path: HCI and PCM, the latter is the path routed to PCM hardware, which is the default setting. I can change the default data path setting to HCI for you. Can you give me some instructions to use your test example so that I can verify my modication?

@mringwal

This comment has been minimized.

Contributor

mringwal commented Oct 30, 2017

hi @mywang-espressif SCO via PCM makes sense (same with all standalone HCI Controllers). If SCO is configured for PCM, can the PCM data be read by the CPU, too? At what pins is the SCO data as PCM/I2S available?

To test with SCO via HCI, you could run the hfp_hf example and pair from a mobile phone. With packet log enabled, you should see SCO packets in the log (but the logging will slow you down). Maybe just print a "SCO received" instead in the hfp_hf_demo to make sure that SCO receiving works. hfp_hf example will send a 441 Hz sine wave, so if you call yourself, you should hear a sine. Sending requires SCO Flow Control to work, though.

If possible, it would be great to have an esp_... call to configure SCO to either specify the GPIO or select "SCO via HCI" during/after init.

@mringwal

This comment has been minimized.

Contributor

mringwal commented Dec 22, 2017

Hi! How can I configure SCO to get routed over HCI?

@nuntipat

This comment has been minimized.

nuntipat commented Jan 29, 2018

Hello @mywang-espressif, may I know if there is any update on this issue? For your information, here is the log after I'm testing the hfp_hf example.
Thank you,
Nuntipat

[00:02:18.093] LOG -- hfp_hf_demo.c.252: USER:'i'
Dial 1234567
[00:02:18.093] LOG -- hfp.c.127: HFP_TX ATD1234567;

[00:02:18.186] LOG -- hfp_hf.c.971: HFP_RX 
OK
[00:02:18.321] LOG -- hfp_hf.c.971: HFP_RX 
+CIEV: 3,2
[00:02:18.321] LOG -- hfp.c.1328: Parsed status of the AG indicator 2, status 
[00:02:18.322] LOG -- hfp.c.1104: 2 

AG_INDICATOR_STATUS_CHANGED, AG indicator 'callsetup' (index: 3) to: 2
[00:02:18.505] LOG -- hfp_hf.c.971: HFP_RX 
+BCS:1
[00:02:18.505] LOG -- hfp.c.1254: hfp parse HFP_CMD_AG_SUGGESTED_CODEC 1

[00:02:18.505] LOG -- hfp_hf.c.506: hfp: codec confirmed: CVSD
[00:02:18.511] LOG -- hfp.c.127: HFP_TX AT+BCS=1

[00:02:18.548] LOG -- hfp_hf.c.971: HFP_RX 
OK
[00:02:18.557] LOG -- hci.c.1888: Connection_incoming: DC:A9:04:49:B8:CA, type 2
[00:02:18.558] LOG -- hci.c.184: create_connection_for_addr DC:A9:04:49:B8:CA, type fe
[00:02:18.561] LOG -- hci.c.3143: sending hci_accept_connection_request, remote eSCO 1
[00:02:18.569] LOG -- hfp_hf.c.589: HFP: sending hci_accept_connection_request, sco_voice_setting 0x60
[00:02:18.596] LOG -- hci.c.1954: Synchronous Connection Complete (status=0) DC:A9:04:49:B8:CA
[00:02:18.596] LOG -- hfp.c.659: eSCO Connection established.ASSERT_ERR(0), in ld_acl.c at line 4245abort() was called at PC 0x40082829 on core 0
0x40082829: lock_acquire_generic at /home/nuntipat/esp/esp-idf/components/newlib/./locks.c:141


Backtrace: 0x4008a3b0:0x3ffc02e0 0x4008a54b:0x3ffc0300 0x40082829:0x3ffc0320 0x40082949:0x3ffc0350 0x400d36de:0x3ffc0370 0x400d3739:0x3ffc03b0 0x400e4b5e:0x3ffc03d0 0x400e4b6f:0x3ffc03f0 0x400f3aec:0x3ffc0420 0x400edc32:0x3ffc0440 0x4001791d:0x3ffc0460 0x400ee1b1:0x3ffc0480 0x400ee3a2:0x3ffc04c0 0x400188f5:0x3ffc04f0 0x40055fca:0x3ffc0530 0x40083aae:0x3ffc0550 0x40031b6a:0x3ffc0570 0x400156a5:0x3ffc05a0 0x400552cd:0x3ffc05c0 0x4008667b:0x3ffc05e0 0x4008201a:0x3ffc0600 0x400e2ee5:0x00000000
0x4008a3b0: invoke_abort at /home/nuntipat/esp/esp-idf/components/esp32/./panic.c:648

0x4008a54b: abort at /home/nuntipat/esp/esp-idf/components/esp32/./panic.c:648

0x40082829: lock_acquire_generic at /home/nuntipat/esp/esp-idf/components/newlib/./locks.c:141

0x40082949: _lock_acquire_recursive at /home/nuntipat/esp/esp-idf/components/newlib/./locks.c:169

0x400d36de: _puts_r at /Users/ivan/e/newlib_xtensa-2.2.0-bin/newlib_xtensa-2.2.0/xtensa-esp32-elf/newlib/libc/stdio/../../../.././newlib/libc/stdio/puts.c:98 (discriminator 2)

0x400d3739: puts at /Users/ivan/e/newlib_xtensa-2.2.0-bin/newlib_xtensa-2.2.0/xtensa-esp32-elf/newlib/libc/stdio/../../../.././newlib/libc/stdio/puts.c:138

0x400e4b5e: report_recv_called_from_isr at /home/nuntipat/esp/esp-idf/components/btstack/./main.c:98

0x400e4b6f: host_recv_pkt_cb at /home/nuntipat/esp/esp-idf/components/btstack/./main.c:122

0x400f3aec: vhci_send at ??:?

0x400edc32: r_eif_send at ??:?

0x400ee1b1: hci_tx_start at hci_tl.c:?

0x400ee3a2: r_hci_tl_send at ??:?

0x40083aae: r_assert_err at ??:?

0x4008667b: r_rwbtdm_isr_wrapper at intc.c:?

0x4008201a: _xt_lowint1 at /home/nuntipat/esp/esp-idf/components/freertos/./xtensa_vectors.S:1105

0x400e2ee5: uart_tx_char at /home/nuntipat/esp/esp-idf/components/vfs/./vfs_uart.c:117


================= CORE DUMP START =================
HOoAAAcAAAB0AQAA
3Nf8PyAC/D/U1/w/
sM/8P3DX/D91pkMAiC38P4gt/D/c1/w/gC38PxgAAAAU0CfmzAC3AtzX/D8AAAAA
AQAAANjF/D9tYWluAEtphyT15dApB9IAAAAAANTX/D8AAAAAIQUGAAEAAAACAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADyp/D+kqfw/DKr8PwAAAAAAAAAA
@mringwal

This comment has been minimized.

Contributor

mringwal commented Mar 1, 2018

Any progress on this? We've got a few more commercial inquiries about using HSP/HFP with ESP32, but so far that's no possible even with our Bluetooth stack as SCO is not accessible.

@jack0c jack0c added the in progress label Mar 21, 2018

@mywang-espressif

This comment has been minimized.

mywang-espressif commented Mar 23, 2018

Hi @mringwal, I am sorry for the late response. I have studied this case and there are some issues in the use of SCO/eSCO link. According to our plan, we to resolve the issues within next month, to support such profile as HFP.
The audio data path can be configured as either PCM or HCI. Voice over HCI suffers an issue that will leads to crash. the latter. The former data path, bluetooth controller can access internal PCM interface which can be configured to be output to GPIO.
The HCI controller to host flow control for SCO link is not available for now, it is also an issue to be fixed.
Due to the existing issues, the SCO link demands for comprehensive test. All in all I will keep you informed of our progress for the SCO.

@mringwal

This comment has been minimized.

Contributor

mringwal commented Mar 23, 2018

hi @mywang-espressif Thanks for the current status.

So, in theory SCO could be routed to GPIOs and works there. How is this configured?

Some ideas:

  • Could an ESP32 application also receive PCM data that the Bluetooth Controller has routed to GPIO? :)

  • The main need for SCO over HCI is to support Wide-Band Speech.
    If the Bluetooth Controller could decoded/encode the SBC data + do some Packet Loss Concealment before passing it out/in via PCM, SCO does not need to go over HCI.

@mywang-espressif

This comment has been minimized.

mywang-espressif commented May 22, 2018

Hi @mringwal . The HFP Hands Free Unit is now merged into ESP-IDF master:
commit adcad91
I am afraid that for this initial commit, there is some bugs left unresolved and no example is there, but we will try to improve it soon.

Audio data path can be set as either: 1.PCM interface or 2. VoHCI. We have provide the menuconfig options in ESP32 bluedroid host, which actually invokes
esp_err_t esp_bredr_sco_datapath_set(esp_sco_data_path_t data_path)
as declared in esp_bt.h, which is supposed to be called after esp_bt_controller_enable().

If 1. PCM interface is used, the internal PCM signals from bluetooth IP can be "matrix"ed to GPIO pins, related signals include PCMFSYNC_OUT_IDX, PCMCLK_OUT_IDX, PCMDOUT_IDX, PCMDIN_IDX etc as shown in components/soc/esp32/include/soc/gpio_sig_map.h
If 2. VoHCI is used, ESP32 CPU can get access to the data and WBS can be built upon that.

Currently, some known issues I have found during development are left:

  1. For VoHCI(voice over HCI), the HCI downstream SCO packet sent to controller is somehow required to use a packet length of 120Bytes, according to my test from ESP32 bluedroid. I will figure out the limitations for this packet length later.
  2. For VoHCI, the HCI event number_of_completed_packets brings invalid SCO handles to the host, I found that the 16-bit handle along with packet_status flag and reserved bits is often 0x3980, and the actual SCO handle is 0x180. Currently the ESP32 bluedroid host just masks the upper bits.
  3. The controller-to-host SCO packet flow control does not yet work.

Those are the issues of current state. I am sorry for the incomplete work but we will try to resolve the issues. Suggestions from you are highly valued.

@mringwal

This comment has been minimized.

Contributor

mringwal commented May 22, 2018

Hello @mywang-espressif Thanks for the update! From your description it already sounds possible to use HSP/HFP/SCO now.

As for the known issues:

  1. fixed packet length: USB requires a packet len of 3 + 24 resp 48 bytes per active SCO connection. On TI's CC2564, larger sizes are required as well and 120 is recommended (I think I've used 60 byte packets). Just documenting this seems good enough.
  2. What is the meaning of the top-most 4 bits? Bluetooth spec says they are reserved. It wouldn't hurt to mask the upper bits in BTstack as well.
  3. Usually, this should not be needed. If I know that it doesn't work, I can try to keep track of received SCO packets in the VHCI wrapper and just drop them if there's no additional space.

I'll give it a try soon.

@mringwal

This comment has been minimized.

Contributor

mringwal commented Jun 16, 2018

hi @mywang-espressif - sorry, it took me so long to give this a try.

I've added a call to esp_bredr_sco_datapath_set(ESP_SCO_DATA_PATH_HCI) after esp_bt_controller_enable(ESP_BT_MODE_BTDM):
bluekitchen/btstack@d72415a

When opening an SCO connection, I don't see SCO packets getting received. What am I missing?

Could you do a quick check with the BTstack hfp_hf_demo? If needed, the SCO payload can be set to 120 by setting sco_packet_length to 123 in example/sco_demo_util.c:578.

Thanks!

@mringwal

This comment has been minimized.

Contributor

mringwal commented Jul 20, 2018

Just updated to current esp-idf master. Right now, I get this crash on btstack's develop branch for an incoming SCO connection in hfp_hf_demo.

...
[00:00:00.543] LOG -- main.c.250: transport: configure SCO over HCI, result 0x0000
...
[00:00:26.280] LOG -- hfp_hf.c.606: HFP: sending hci_accept_connection_request, sco_voice_setting 0x60
Guru Meditation Error: Core 0 panic'ed (IntegerDivideByZero). Exception was unhandled.
Core 0 register dump:
PC : 0x4002faf5 PS : 0x00060031 A0 : 0x80030d4e A1 : 0x3ffc0550
A2 : 0x00000000 A3 : 0x0000a0f4 A4 : 0x800371a0 A5 : 0x3ffd41e0
A6 : 0x00000000 A7 : 0x40088554 A8 : 0x00000000 A9 : 0x00000000
0x40088554: r_global_int_restore at ??:?

A10 : 0x3ffbd600 A11 : 0x3ffb824c A12 : 0x03ffffff A13 : 0x02ee03ba
A14 : 0x00000000 A15 : 0x00000070 SAR : 0x00000020 EXCCAUSE: 0x00000006
EXCVADDR: 0x00000000 LBEG : 0x4000c2e0 LEND : 0x4000c2f6 LCOUNT : 0x00000000
Core 0 was running in ISR context:
EPC1 : 0x4002faf5 EPC2 : 0x00000000 EPC3 : 0x00000000 EPC4 : 0x00000000

Backtrace: 0x4002faf5:0x3ffc0550 0x40030d4b:0x3ffc0570 0x4003a7e5:0x3ffc05a0 0x40087992:0x3ffc05c0 0x400883ab:0x3ffc05e0 0x400820ee:0x3ffc0600 0x4000bfed:0x00000000
0x40087992: r_rwbt_isr at ??:?

0x400883ab: r_rwbtdm_isr_wrapper at intc.c:?

0x400820ee: _xt_lowint1 at /Projects/esp32/esp-idf/components/freertos/xtensa_vectors.S:1105

================= CORE DUMP START =================
WBMAAAYAAAB0AQAA
WAb9P/AE/T9QBv0/
8AT9P/AF/T8AkNnhBD38PwQ9/D9YBv0//Dz8PxkAAACwjd4EAz+SyVgG/T8AAAAA
AAAAAFQC/T9JRExFAAs+GVUNuibYLFEAAAAAAFAG/T8AAAAAIw0GAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDR/D+o0fw/ENL8PwAAAAAAAAAA
AQAAAAAAAABItUA/AAAAAEgdAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU7K6
qB4IQB5WEUAwCgYA6roIgLAF/T8IAAAAAAAAACMABgBYBv0/AQAAAAAAAABAPPw/
JDz8PwAAAAAjAAYAIwAGAAD+/D8BAAAAAAAAAAAAAAAgCAYAgAX8PwAAAAAAAAAA
AAAAAKEgCEAA/vw/pNIIQCzT+z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAACMABgAA/vw/AQAAAAAAAAAAAAAA0AX9PwAAAAAAAAAA
IwAGAFgG/T8BAAAAAAAAAAAAAADwBf0/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/AX9PwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAA==
WAD9P1D+/D9QAP0/
UP78P/D//D8DbQAA8Dz8P/A8/D9YAP0/6Dz8PxgAAABmK916LzXiI1gA/T8AAAAA
AQAAAFTu/D9tYWluAL3uqhIleTbivmIAAAAAAFAA/T8AAAAAIQAGAAEAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDR/D+o0fw/ENL8PwAAAAAAAAAA
AQAAAAAAAABItUA/AAAAAEgdAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAFZz1
qB4IQPC/AEAwBgYA7LYIgBD//D8AAAAAIwYGACAGBgAAAAAAAAAAALAF/D/4FwiA
4P78P8gI/D8DbQAAAAAAAAIAAAAFAAAAAQAAABgAAAC87F3mFQP8P0nDAEBrwwBA
/////6EgCEACAAAApNIIQCzN+z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAALAF/D9KxQiAIP/8P+gI/D8DbQAA
aHYOgED//D/oCPw//////yxD/D+AAAAAAQAAAAAAAAC0cg6AYP/8P9NNYhCo0fw/
AAAAAHgGAAAAAAAAAAAAANsoDoCQ//w/CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
BQAAAAAAAAAgAAAAAQAAAE0fDYCw//w/pCUOQAAAAACADAAAVKH8P1AS/T8jAAYA
AAAAAND//D8AAAAAAAAAAAAAAABYAP0/AQAAAAAAAAAAAAAA8P/8PwAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz//D8AAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
zBD9P0AP/T/EEP0/
QA/9P2AQ/T8AAAAA3Dz8P9w8/D/MEP0/1Dz8PxgAAAD8B/0//Af9P8wQ/T/0B/0/
AQAAAMgI/T9UbXIgU3ZjAPlCRYrLCWUAAAAAAMQQ/T8AAAAAIQAGAAEAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDR/D+o0fw/ENL8PwAAAAAAAAAA
AQAAAAAAAABItUA/AAAAAEgdAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9Dlj
qB4IQDrYCEAwCwYAL9kIgAAQ/T8EP/w/AAAAAAEAAABYAP0/AQAAAAAAAAA62AiA
4A/9PwAAAABwPPw/HAj9PwAAAAAAAAAAAwAAAAAAAAClpaWlpaWlpQAAAAAAAAAA
AAAAAKEgCEAAAAAApNIIQJzd+z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMBD9PwAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAJzd+z8AAAAAAAAAAAAAAAAAAAAAYBD9PwAAAAAAAAAA
AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABsEP0/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAA==
QOX8P7Dj/D845fw/
sOP8P9Dk/D/2fW43zCr9P+Ts/D9A5fw/jDz8PwMAAAAQ0/w/ENP8P0Dl/D8I0/w/
FgAAADzT/D9lc3BfdGltZXIAJU7fdVAAAAAAADjl/D8AAAAAIQAGABYAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDR/D+o0fw/ENL8PwAAAAAAAAAA
AQAAAAAAAABItUA/AAAAAEgdAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtr6e
qB4IQGDQCEAwAAYAdyYNgHDk/D/k0vw/AAAAADDT/D8AAAAAAQAAAAAAAABg0AiA
UOT8PwAAAADwPvw/8D78P7Dr/D/ICPw/AQAAAAAAAAClpaWlpaWlpQAAAAAAAAAA
AAAAAKEgCECw6/w/pNIIQAyy+z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsOT8PwAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAANDk/D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAADc5Pw/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAA=
xCr9P2Ao/T+8Kv0/
YCj9P1Aq/T+saxG0lDz8P0jl/D/EKv0/jDz8Pw0AAAD4MP0/+DD9P8Qq/T/wMP0/
DAAAAMAi/T9idHN0YWNrX3N0ZGluAGMA////f7wq/T8AAAAAIQAGAAwAAAABAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDR/D+o0fw/ENL8PwAAAAAAAAAA
AQAAAAAAAABItUA/AAAAAEgdAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAS7CS
qB4IQGDQCEAwCgYAluAIgCAp/T/MMP0/AAAAABgx/T8AAAAAAQAAADws/T9g0AiA
ACn9PwAAAADwPvw/8D78PyAAAAAfAAAADQAAABMAAAClpaWlpaWlpWzEAEB3xABA
AAAAAKEgCEAgAAAApNIIQIz3+z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAPgAAAAAAAAAAAKWlpaWQ5QiAYCn9PyQv/T+wKf0/
AAAAAPkAAAClpaWlpaWlpf////+lpaWlpaWlpaWlpaUwM/0/JDP9Pw0AAAAAAAAA
xYcOgKAp/T8kL/0/8Cn9P6WlpaWlpaWlpaWlpaWlpaW0Kf0/AAAAAAAAAAAAAAAA
AAAAAP//////////+AAAAIjID4DgKf0/AAAAADws/T//////4Cn9PwAAAAAAAAAA
/////+Ap/T8AAAAAjKH8P/////8AAAAAAAAAANAK/D8AAAAAMCr9PwAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAJ0BAAAKCngAAAAAAAAAAAD8x/w//////wAAAAAAAAAA
AQAAAAAAAAAAAAAAAAAAAAAAAABQKv0/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXCr9PwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
3Oz8P1Dr/D/U7Pw/
UOv8P3Ds/D/0q8HuSOX8P5Q8/D/c7Pw/jDz8PwEAAACs6Pw/rOj8P9zs/D+k6Pw/
GAAAANjo/D9pcGMwAHvsYy/1ATgenl0AAAAAANTs/D8AAAAAIQAGABgAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDR/D+o0fw/ENL8PwAAAAAAAAAA
AQAAAAAAAABItUA/AAAAAEgdAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOHFK
qB4IQGDQCEAwAAYAbxcIgBDs/D+A6Pw/AAAAAMzo/D8AAAAAAQAAAAAAAABg0AiA
8Ov8PwAAAADwPvw/8D78PwA7/j/oCPw/AgAAAAAAAAClpaWlpaWlpQAAAAAAAAAA
AAAAAKEgCEAAO/4/pNIIQKy5+z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUOz8PwAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAHDs/D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmDwiAsDv+P3g8/D88P/w/
AAAAAAAAAAB87Pw/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAA==
================= CORE DUMP END =================
E (9081) esp_core_dump: Skipped 1 tasks with bad TCB!
E (9087) esp_core_dump: Crashed task has been skipped!
CPU halted.

@markingle

This comment has been minimized.

markingle commented Jul 21, 2018

I have a need for HFP as well. I will begin testing the code with my setup an report any issues. Thanks for working on this feature!

@DTurnbow

This comment has been minimized.

DTurnbow commented Aug 21, 2018

So what is the current status?
Where would I find the HSP/HFP sample code?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment