the comparatively large write times of the external flash memory.
This is why we are looking for a better solution on this problem in the
next hardware revision.
Having the memory concept of future revisions in mind, we changed the
firmware from it's current memory concept, which is using the external
flash as a direct memory for reading/writing of card (or application)
memory contents to a different one.
With this new version, the memory that is directly accessed by the
application (through MemoryWrite and MemoryRead) now resides within the
local RAM of the microcontroller, thus limiting the maximum card size to
1KB.
However, the flash is still used to store multiple other card dumps,
that are now recalled and stored upon
1) Changing the current setting to another card. This applies also to
using the CYCLE_SETTINGS button action.
2) The newly introduced button actions MEM_RECALL and MEM_STORE
Consider this new concept as a feature, since it is now easily possible
to, for example emulate a payment card and recall the original contents
(stored in flash) upon button press. However, note that the modified
card contents are lost, if they are not written back to flash before
powering the Chameleon off.
For the future we are thinking about using external non-volatile RAM to
store the current card to prevent this from happening. That way, we can
have a very consistent memory concept and are still able to recall or
store the memory from flash.
Note that the previous Firmware version that uses the flash in a direct fashion is still available for those that don't care about the write times and need the full unlimited memory size.