As long as the chip is listed as being compatible with QMK on Github, especially if it's listed in the Toolbox, I should be able to flash my layout without any trouble, correct?
Yes. Every chip (more commonly called a microcontroller or MCU) is unique in its own way, so the chip must be specifically supported by QMK.
Also, QMK firmware isn't naturally included on a chip, but is just something that has been built that can communicate with different AVR and ARM chips during the flashing process, correct? I guess I'm confused when I see 'powered by QMK' a la Massdrops' Ctrl board, for example. Does this mean it's integrated into the chip?
For older chips, like the atmega32u4, is the firmware loaded onto the chip during the initial connection with your PC and then remains on the microcontroller for future flashing communication?
"Flashing" is just jargon for "loading a program" onto a microcontroller.
Typically a microcontroller only keeps one program in its memory at a time. Controllers like the ATMega (technically "megaAVR") series have two sections of writeable memory: 1) the bootloader, and 2) the user-loaded program. The ATMega can be run in either "bootloader mode", when the bootloader runs on startup, and its regular mode, when the user-loaded program runs on startup.
The bootloader should come pre-installed from the factory. This program communicates with your computer and is able to "self-program", by writing data of your choice to the user-loaded program section of memory.
Once the program has been written to the user area of memory, the bootloader can "reset" the controller back to its regular user-program mode, and execute the program as normal.
So the flashing process works like this:
- Start the controller in bootloader mode
- Use the bootloader to write a new program to the user area of memory
- Either turn the controller off and start again in regular mode, or use the bootloader to switch modes
As long as you don't mess up the bootloader, you should always be able to repeat this process, no matter how screwed up the user program gets.
Typically when a custom keyboard says it runs QMK, this means that you
can flash QMK onto it, using the above process. Most keyboards nowadays come pre-flashed, meaning you (the end user) doesn't have to flash anything in order to use QMK right out of the box.
As for keyboards sold by Drop, it's not obvious what they will do. It might come with some kind of proprietary firmware pre-flashed, or it might come with QMK pre-flashed. But as long as they provide instructions for flashing, and as long as the keyboard is already available in the QMK repo (you can check on e.g.
https://config.qmk.fm), you should be able to flash QMK on it after you receive it.