Open Ben-PH opened 1 year ago
Additonal thought:
securing data will be an issue, especially when it comes to keyboard usage. Will have to be put through the ringer. From what I gather, c3 is more feature-complete for security compared to c2
https://thingpulse.com/esp32-ultra-long-battery-life-with-espnow/ : deep-sleep latency is unacceptable: half a second. User could configure the rules for a module entering deep-sleep.
...don't write of bluetooth connectivity. Consider USB connection a "must-have" and bluetooth a "nice to have". This implies there will need to be thought given to it. Brass-tax, though, is that it will only be relevant to the core device, and interfacing via usb-hid or a ble-hid wouldn't be mutually exclusive.
...research and testing will need to be done with respect to latency of going from light-sleep to input event received.
This issue is to explore our thinking about arranging our micro-controllers
Core design
also see: https://www.lynxware.org/
Context
I'm fine when it comes to writing rust, and I'm starting to get a feel for writing basic firmware. I have no frame of reference, though, for how to think about how to sort out hardware architecture in the physical world, beyond how it relates to the code I'd need to write. To put it another way: In my head, the physical micro-controllers are a purely abstract concept, where cost doesn't exist, power consumption is just code-style guide, and multiple devices are just esp-now code.
Previous approaches
Our first idea was to work with two splits, one designated primary, the other secondary. The primary would be the link to the host, the secondary would feed input events to the primary:
Because we want wireless, and BT/BLE is mostly considered deprecated to us, we decide to go with the "esp-now to a USB adapter". This put me on the path of: "Why not make the more than just an adapter? Let's make it the central hub?"
Current/Proposed design approach
But I'm not confident in my ability to consider trade-offs...
pros:
cons:
Thinking: