Skip to content
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

ISO Interval Frame Clock - unicast-client-role #620

Open
markusjellitsch opened this issue Jan 7, 2025 · 2 comments
Open

ISO Interval Frame Clock - unicast-client-role #620

markusjellitsch opened this issue Jan 7, 2025 · 2 comments

Comments

@markusjellitsch
Copy link

markusjellitsch commented Jan 7, 2025

Hello,

I have implemented a bap unicast client example using bumble and so far I am very happy with your work. Thanks, great job.

However, at the moment I face some challenges when transmitting ISO PDU the CIS link has been established and Sink ASE is enabled.

My idea is to forward the ISO frame from the Host to the Controller (nRF53) at the configured ISO interval (ISO_interval = 10 ms) without using asyncio.sleep in a while loop.

I figured out that on_hci_number_of_completed_packets_event() in host.py is triggered each time , the controller has sent the ISO frame. This event can be forwarded to the application by emitting an event (device.host.on()) and consequently providing a ISO Interval frame clock.

I have tested this approach and audio streaming works very reliably.

So my question: Can you emit the on_hci_number_of_completed_packets_event() to the application in the future or do you have other suggestions providing a frame clock for CIS frames?

Thanks
Markus

@barbibulle
Copy link
Collaborator

Hi Markus.
Indeed, being able to leverage the controller events as a clock makes a lot of sense. I was actually thinking about doing something along those lines in a PR I’m working on right now that adds a few new features to the auracast app.
I’ll have the PR up soon for review, so you can check whether that will work for your purposes too.

@markusjellitsch
Copy link
Author

Thanks Gilles,

I have also testet the auracast app with the event emitted.
Looks very promising. I could remove the transmission loop and send the next iso frame when hci_number_of_completed_packets_event is triggered.

Below there is a the HCI Uart communication between Host and Controller showing a stable frame rate (ISO Interval = 10 ms and a single BIS)

Image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants