# FirmwareDump

This plugin provides a single Focus command: `firmware.dump`, which dumps the
firmware's executable code. One might rightfully wonder what purpose this serves
when the source code is available, but rest assured, there is one: in case one
wants to temporarily replace their firmware, then put it back on, without having
to carry the HEX file around, this command makes that possible: dump the
contents, turn them into HEX, and it can be re-flashed at any point. We get a
HEX file on-demand, and don't have to carry it around!

The intended primary user of this feature is [Chrysalis][chrysalis].

 [chrysalis]: https://github.com/keyboardio/Chrysalis

## Using the plugin

To use the plugin, include the header, and add it to your list of plugins:

```c++
#include <Kaleidoscope.h>
#include <Kaleidoscope-FocusSerial.h>
#include <Kaleidoscope-FirmwareDump.h>

KALEIDOSCOPE_INIT_PLUGINS(FocusSerial, FirmwareDump);

void setup () {
  Kaleidoscope.setup();
}
```

## Focus commands

The plugin provides a single [Focus][FocusSerial] command:

 [FocusSerial]: Kaleidoscope-FocusSerial.md

### `firmware.dump`

> Dumps the entire firmware (bootloader not included), even the unused parts.

## Dependencies

* [Kaleidoscope-FocusSerial][Kaleidoscope-FocusSerial.md]