A customer plugged a module into their Arduino MKR WiFI 1010 and discovered the code did not compile.
The current library code uses EEPROM to remember the zero position and multi-turn offset between power cycles.
Some of the new Arduino boards such as the Zero and the MKR use the SAMD21 chip which has no EEPROM memory, and therefore the current library code is not compatible with these boards.
I welcome input from customers and observers as to how to work around this problem. Repeatedly writing to the SAMD21 flash instead via EEPROM emulation is generally not recommended due to the limited write cycles on that memory.
A couple of ideas:
- I am considering tweaking the next version of the board to optionally have an I2C EEPROM or FRAM chip.
- Another idea I was working on was a design using an ATTiny841 instead of the pin expander, which would run all the code on-board. I got carried away and wrote the code for this including using a spare pin and memory to drive synchronized neopixel rings. That idea has been on the shelf for a while. https://github.com/arielnh56/ace128tiny (looking at that code, I know I wrote more. Hope I still have it, will check in what I have)
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
You could wear level the writes in data flash to mitigate the much lower erase-write cycle endurance.
Are you sure? yes | no