esp32s3 BLE proxy performance
Posted: Sun Feb 11, 2024 8:19 pm
hello,
i made my esp32s3 as a proxy between my mouse and my computer and notice significant lag/stuttering when moving it. i combined the two examples esp_hid_device and esp_hid_host from esp-idf. it works like this: the esp32s3 first connects to the computer then the mouse connects to the esp32s3 and finally when the esp32s3 recieves an input event, it sends it to the computer directly. it works with bluedroid.
the issue is that there is much more lag/stuttering when moving the mouse proxied with my solution than when the mouse is connected directly to the computer and i'd like to fix this issue. i know the esp32 is very powerful and a project like mine shouldn't impact the inputs that much, as i basically just want to stream the inputs.
i've read a bit about MTU and i think reducing the size of the packets can stop the lag, but it cannot be configured in menuconfig with bluedroid, and switching to NimBLE is not possible, or would be a real hassle, also i think bluedroid can be made fast enough for input streaming. problem is i have no clue how to do it.
any thoughts?
i made my esp32s3 as a proxy between my mouse and my computer and notice significant lag/stuttering when moving it. i combined the two examples esp_hid_device and esp_hid_host from esp-idf. it works like this: the esp32s3 first connects to the computer then the mouse connects to the esp32s3 and finally when the esp32s3 recieves an input event, it sends it to the computer directly. it works with bluedroid.
the issue is that there is much more lag/stuttering when moving the mouse proxied with my solution than when the mouse is connected directly to the computer and i'd like to fix this issue. i know the esp32 is very powerful and a project like mine shouldn't impact the inputs that much, as i basically just want to stream the inputs.
i've read a bit about MTU and i think reducing the size of the packets can stop the lag, but it cannot be configured in menuconfig with bluedroid, and switching to NimBLE is not possible, or would be a real hassle, also i think bluedroid can be made fast enough for input streaming. problem is i have no clue how to do it.
any thoughts?