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

Does nrf5 ble support hid? #7

Open
dzhou121 opened this issue Apr 16, 2018 · 3 comments
Open

Does nrf5 ble support hid? #7

dzhou121 opened this issue Apr 16, 2018 · 3 comments

Comments

@dzhou121
Copy link

No description provided.

@ziutek
Copy link
Owner

ziutek commented Apr 16, 2018

There is no ready to use BLE package in Emgo.

@dzhou121
Copy link
Author

Is it easy to add? And I can help if you could give me a bit of guidance.

@ziutek
Copy link
Owner

ziutek commented Apr 17, 2018

No, it isn't easy... at least for me.

The problem isn't higher layers but lowest layer: BLE controller.

You need to read:

  1. Bluetooth Core Specification (at least 4.0): https://www.bluetooth.com/specifications/bluetooth-core-specification/archived-specifications

  2. nRF51822 (preferably also nRF52832) Reference Manual: http://infocenter.nordicsemi.com/pdf/nRF51_RM_v3.0.1.pdf

The problem insist in strict timing. You have to design a state machine that properly handles all cases and you need to write it cleanly in Go. You need a deep understanding of the protocol and hardware. Debuging is difficult, especially if your only tool is Android phone with its HCI logging.

There are open source implementations in: MyNewt and Zephyr. The last one has some support from Nordic: https://devzone.nordicsemi.com/b/blog/posts/nrf5x-support-within-the-zephyr-project-rtos

I didn't studied their code but it's probably worth doing.

There is my proof of concept code in nrf5/blec and an example that almost works. But everything must be be thought over and rewritten.

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