Comments (5)
changing AT SA so that it overwrites the slot data in EEPROM is not trivial and would need some changes in the eeprom implementation (move all remaining data if the slot size changes), see also discussion in
#46
we could discuss several strategies:
- improve the speed of EEPROM access and implement the defragmentation / slot copy function
- store keystings seperately so that less data must be copied on demand
- store slot data in ESP32 flash (if BT-AddOn is available)
- use a fixed slot size (reserve memory for max keystring length) - is would be fast and easy, but is wasteful (and no option for the much smaller EEPROM in the FABI system / AVR)
from flipmouse.
a first version of EEPROM slot copy is there:
8f36024
although it should work in theory and the EEPROM bin/block writes improve performance, this needs further consideration ...
I think it is not reasonable to save (and respectively change EEPROM content) every time a user makes small changes in the FlipMouse configuration.
from flipmouse.
further worked on that, see 27696be
Using EEPROM page writes and optimized I2C buffer size, a slot save can now be performed at 1/3 of the time, and moving slots (in course of the save action) is 10 times faster. Example timing for moving three slots and then overwriting a slot: ~580 ms.
Please note that the C# GUI in this branch now performs the AT SA action when pressing the "Test Settings" button, and that basic debug messages are turned on in the firmware.
from flipmouse.
sounds great! π
Sorry for my naive thought that AT SA
was just lacking of a single else
statement π
from flipmouse.
With all the last commits on v2 and the ongoing work on v3 with the RP2040 branch, we can close this issue.
from flipmouse.
Related Issues (20)
- HW - evaluate best USB plug positioning
- Couple of unclear instructions in Construction Guide HOT 1
- Unclear calibration on slot-switch if gain!=50 HOT 4
- FlipMouse C# GUI - Problem if ID string is assigned as keyboard write HOT 1
- FlipMouse C# GUI - List of slots is not set correctly, if settings are not loaded from mouse HOT 1
- Wrong component labelling for BT add-on module HOT 1
- Inconsistent EEPROM state HOT 3
- Keycode lookup if esp32_mouse_keyboard aka ESP32miniBT module is connected. HOT 1
- Media keys
- FLipMouse GUI - Managing Bluetooth devices HOT 4
- Automatic Firmware Update HOT 3
- BLE: rate limiter / commands to addon module in general HOT 3
- `AT SR`: add button states HOT 3
- openinput support HOT 3
- Macros: AT MA KW \;;CR; writing "ΓΆ" instead of ";" HOT 2
- Add AT command for renaming slots
- Add AT command to switch on/off certain buzzer beeps
- 3d-printed case: improvements
- Sip&Puff sensor spurious failing HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from flipmouse.