> For the complete documentation index, see [llms.txt](https://rgbkb.gitbook.io/rgbkb-build-guides/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://rgbkb.gitbook.io/rgbkb-build-guides/pan/flashing.md).

# Flashing

{% hint style="info" %}
Your ATmega 32A will come pre-flashed with a bootloader and default hex file. You can use [**QMK toolbox**](https://github.com/qmk/qmk_toolbox/releases) to flash a new layout.
{% endhint %}

Pan uses QMK firmware. [Documentation on installation, keymaps and compiling can be found here.](https://docs.qmk.fm/)​

If QMK Toolbox doesn't work, try [these steps](https://www.reddit.com/r/olkb/comments/7jo1ob/qmk_flashing_kbd75_no_device_present/dr9jvj6)​

### ​[Pre-compiled firmware files can be found here](https://github.com/RGBKB/Keyboard-files/tree/master/Pan/Flashing%20Files)​ <a href="#pre-compiled-firmware-files-can-be-found-here" id="pre-compiled-firmware-files-can-be-found-here"></a>

1. Choose ATmega32A in QMK Toolbox.
2. Choose the hex file to flash.
   1. Choose a hex file based on your encoder and LED bypass configuration.
3. Hold the BOOT button, tap RESET, and release the BOOT button.
   1. A device named "USBASP..." should show up.
4. Flash the board.
5. Done!

If your ATmega32A doesn't have a bootloader, you'll need to flash one using AVRdudess and an arduino

* [Set up your arduino as an ISP flasher](https://www.arduino.cc/en/tutorial/arduinoISP)
* Make sure to download the bootloader hex [here](https://github.com/RGBKB/Keyboard-files/tree/master/Pan/Flashing%20Files)
* Set MCU and fuses as indicated below
* Wire up your arduino to the ISP pins located to the right of the MCU
* Plug in your arduino to the PC and select the port
* Program the ATmega32A

![](/files/-M7kiTsJzpFfw0Vo4hTA)
