SDK modifications for Mesh

HI, I want to understand if there is an option where we can tweak some SDK code or some of the basic firmware ?

As an example: The API for keyboard class says that we can receive MAXIMUM 8 characters at one time. I want to know if it is possible to increase the number of characters ? Should I tweak the SDK and if its feasible ?

I’m curious why you would need to recognize more than 8 simultaneous keys pressed at one time in an IoT application? I don’t believe you would be tweaking the SDK. The keyboard functionality is part of the system firmware. You could certainly fork the system firmware and edit to your desire but then you are completely on the hook for maintaining that firmware as the main branch diverts from your fork as time goes on. I don’t understand this code enough to determine if the keysReport array could be increased in size. In the .h file, it looks like the maximum keys array size is 6 elements. So where did the documents get 8 simultaneous keys from? :


Edit: @rickkas7 After looking at this again, I think the docs should be updated to reflect 6 simultaneous key presses (excluding modifiers such as shift, ctrl, etc.). If I’m wrong, certainly set me straight!

Looking for more information on USB HID reports, I found this doc that explains the Keyboard HID report specifically. Looks like the standard keyboard report will only track 6 simultaneous key presses. Still, it is not impossible to track more that 6 keys but you will have to write a custom driver for your computer that uses a custom HID Report that is larger than 8 bytes in addition to modifying particle system firmware.

https://docs.mbed.com/docs/ble-hid/en/latest/api/md_doc_HID.html

1 Like

Hello,

Thanks for the active response. I will check that. I was going through the reference docs for photon, keyboard class with link : https://docs.particle.io/reference/firmware/photon/#keyboard

It says that it can detect 8 characters at one go.

I know the docs say 8 keys, but the HID Report says 6 (excluding modifier keys such as shift, alt, etc.) I think that’s a discrepancy.