help with HID braille for open source devices for people with disabilities
Hello, I am developing a device for people with disabilities. I need to use the HID braille protocol but I am not getting anything with HID for esp32, could you help me with a sample code of how I can implement the HID braille protocol?
here are the braille HID references
https://usb.org/sites/default/files/hutrr78_-_creation_of_a_braille_display_usage_page_0.pdf
https://github.com/nvaccess/nvda/blob/00cd67b737bc5b23a6f5e31cf28110b64ebf2fee/devDocs/hidBrailleTechnicalNotes.md
my repository is the following https://github.com/brailletouch/Brailletouch
Dear @discapacidad5 , very interesting approach with one real braille cell and the virtual cells! Regarding the Bluetooth HID implementation:
- unfortunately, we don't need a Braille implementation in this repository (maybe my colleagues will find a use case, but I can't). Nevertheless, if you create a new repository for the ESP32 firmware (I would recommend to split the firmware & case designs) I can contribute.
- Thanks for the USB reference document, I think there is everything you need:
To change the HID functionality you need following steps (mostly in the file hid_device_le_prf.c):
- Change the HID descriptor: I would simply use the example from the referenced document. It seems to include left/right control buttons, braille input and some buttons (look for collections which end with an input tag)
- Change the report structure: On the first read, there seems to be only one input and one output report (no report IDs). Combining all report size/report count tags in the HID descriptor you will get the bit/byte positions in your report where data should be sent / read.
Hope I could help, I like your projects!
Greetings
Thank you for answering. I tell you that I do not speak English, I speak Spanish and I am using a Google translator, it is probably easy for you to understand all the documentation that I give you, but for me it is unintelligible that is why I seek help from someone who does understand you. And that I can make an example code from which I can guide myself because there is a lot of documentation but there is no practical example and when it comes to documentation in English when translating into Spanish a lot of essence is lost besides I am a baby in programming I am in full learning that makes me even more difficult
So if you could make me an example code with that that you showed me in your suggestion it would be very helpful for me because I don't know how the HID code works and I don't really know how to do what you are recommending.
El lun., 6 de diciembre de 2021 3:40 a. m., Benjamin Aigner < @.***> escribió:
Dear @discapacidad5 https://github.com/discapacidad5 , very interesting approach with one real braille cell and the virtual cells! Regarding the Bluetooth HID implementation:
- unfortunately, we don't need a Braille implementation in this repository (maybe my colleagues will find a use case, but I can't). Nevertheless, if you create a new repository for the ESP32 firmware (I would recommend to split the firmware & case designs) I can contribute.
- Thanks for the USB reference document, I think there is everything you need:
To change the HID functionality you need following steps (mostly in the file hid_device_le_prf.c):
- Change the HID descriptor: I would simply use the example from the referenced document. It seems to include left/right control buttons, braille input and some buttons (look for collections which end with an input tag)
- Change the report structure: On the first read, there seems to be only one input and one output report (no report IDs). Combining all report size/report count tags in the HID descriptor you will get the bit/byte positions in your report where data should be sent / read.
Hope I could help, I like your projects!
Greetings
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/asterics/esp32_mouse_keyboard/issues/53#issuecomment-986514291, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACL5OJSES4NHWW4AIEY7H5DUPRSHPANCNFSM5JNM7ZTQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
OK, I would get started with the Espressif example: https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/bluedroid/ble/ble_hid_device_demo There is everything you need to get started based on a mouse/keyboard project (exactly as we did here). Try to compile and flash the example, to ensure a correct development setup. (getting started for the ESP32: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html )
And then start to change the HID descriptor to the example from your document.
@discapacidad5
My colleague @ChrisVeigl remembered me of an existing repository where a student of us was building a refreshable braille device: https://github.com/ProjectKitchen/BrailleDisplay/
Maybe you can find some useful information for building your device.
Closing as off-topic, maybe we can consider implementing HID braille in a separate repository