FX is an acronym coined by @Mr.Blinky and voted for by the original 'Team Falcon'. It stands for "Flash eXpansion".
The Arduboy FX is effectively a normal arduboy with an additional piece of hardware: the FX chip. The FX chip consists of two things:
- A large 16MB block of flash memory.
- A small ATtiny85 (in a "20-QFN package")
The flash memory has two primary purposes:
- To store multiple additional Arduboy games, so that they can be uploaded to the Arduboy on demand without a need for an external device.
- To provide extra read-only progmem-like memory so that new games with larger data requirements can take advantage of the extra storage provided by the FX chip
The ATtiny chip on the other hand is primarily intended to be used to update the Arduboy's bootloader.
The Arduboy's default bootloader ("Cathy") is normally the thing responsible for uploading games to the on-board flash memory ("progmem"), and ordinarily it does this by responding to a sequence of commands given to it by an external device capable of serial communication, i.e. a computer.
In order to accomodate loading games from the FX chip, the bootloader had to be modified.
Ordinarily writing a new bootloader to the Arduboy can be difficult, which is why the ATtiny chip has been added to the FX chip, so the new bootloader and any future updates thereupon can be written to the Arduboy without hassle.
Technically yes, but there are certain constraints that make writing to it impractical.
Writes to the flash memory can only consist of transforming 1
bits into 0
bits. In order to change a 0
bit to a 1
bit you must 'erase' a whole 4KB page of memory, which turns all of the bits in that page into 1
bits.
Given that the Arduboy only has 2.5KB, of which 1KB is reserved for the Arduboy2 library's screen buffer and a reasonable amount of RAM must be reserved for the call stack, freely writing to the FX chip's flash memory would be highly impractical.
It would be practical to write the values of a calculable sequence to the flash memory, for use as a lookup table, but it would probably be more efficient to have that sequence already loaded onto the FX chip rather than trying to get the Arduboy to calculate it after the fact.