|
| 1 | +--- |
| 2 | +title: Flashing keyboards and you |
| 3 | +description: Everything you could want to know about flashing terms. |
| 4 | +author: Boardsource |
| 5 | +subcategory: easy |
| 6 | +draft: false |
| 7 | +tags: |
| 8 | +- learning |
| 9 | +--- |
| 10 | + |
| 11 | + # Welcome to the ultimate flashing terms guide |
| 12 | + |
| 13 | + By the end of this you should know everything you could ever want to know about |
| 14 | + the basics of flashing keyboards. |
| 15 | + |
| 16 | + Table of contents: |
| 17 | + * [What is flashing](#what-is-flashing) |
| 18 | + * [What is a microcontroller](#what-is-a-microcontroller) |
| 19 | + * [What is a firmware](#what-is-a-firmware) |
| 20 | + * [What is a bootloader](#what-is-a-bootloader) |
| 21 | + |
| 22 | +## What is flashing |
| 23 | + |
| 24 | +"Flashing" is a term that is used to refer to putting code onto a |
| 25 | +microcontroller (read what this is below). Because these are fully programmable, |
| 26 | +it's up to us to choose what we want them to do! Depending on your firmware |
| 27 | +(also defined below), there will be a few different steps on how to get this |
| 28 | +code, but over all, the process of flashing is just to let the keyboard know |
| 29 | +it's actually a keyboard, and that's how you want it to act. |
| 30 | + |
| 31 | +## What is a microcontroller |
| 32 | + |
| 33 | +A microcontroller is basically "the brains" of the operation. There are many out |
| 34 | +there, but they all serve the same purpose in the end. To turn our thing that |
| 35 | +looks like a keyboard, into something that knows it's a keyboard! Sometimes the |
| 36 | +microcontroller is built into the keyboard itself, and sometimes you have to |
| 37 | +solder a "generic" microcontroller onto the keyboard itself. The microcontroller |
| 38 | +choice is important to you as it is what decides what all features the keyboard |
| 39 | +could have in terms of being bluetooth, or how much storage you have for things |
| 40 | +like screen images. It can also change what kind of firmware is supported if you |
| 41 | +have a preference between them. We'll cover that in a bit. |
| 42 | + |
| 43 | +### Common generic microcontrollers |
| 44 | + |
| 45 | +Most commom microcontrollers for keyboards are based on the Pro Micro pinout. |
| 46 | +That means that any keyboard that can take a Pro Micro controller can also have |
| 47 | +these installed instead. While the pro micro is the historical choice for |
| 48 | +keyboards, it's quite limited these days, so we have many more options. |
| 49 | + |
| 50 | +| Features | Boardsource Blok | Other RP2040 Controllers | Pro Micro/ Elite-c | Nice!Nano | |
| 51 | +|-------------|------------------|--------------------------|--------------------|-----------| |
| 52 | +| CPU Cores | 2 | 2 | 1 | 2 | |
| 53 | +| CPU Speed | 133MHz | 133MHz | 16MHz | 64MHz | |
| 54 | +| RAM | 264KB | 264KB | 32kb | 265Kb | |
| 55 | +| ROM | 16MB | 8MB | 1KB | 1MB | |
| 56 | +| KMK Support | Yes | Yes | No | No | |
| 57 | +| QMK Support | Yes | Yes | Yes | No | |
| 58 | +| ZMK Support | Yes* | Yes* | No | Yes | |
| 59 | + |
| 60 | +* ZMK does not at the moment support split keyboards with a wire. You must use |
| 61 | + bluetooth for split keyboards, and anything with Yes* marked, will not work |
| 62 | + for split keyboards on ZMK specifically. This may change at a later date. |
| 63 | + |
| 64 | +### Firmware overviews |
| 65 | + |
| 66 | +You can read a bit more about firmwares at these links. Hopefully they can |
| 67 | +provide some information to you on which firmware you should choose, or which |
| 68 | +controller may be suited if you have a choice on controllers. Integrated boards |
| 69 | +will tell you which they have on the sales page usually. Anything sold at |
| 70 | +Boardsource integrates a Blok for keyboards with a wire, or a Nice!Nano for |
| 71 | +anything sold as wireless. |
| 72 | + |
| 73 | +- [QMK firmware](https://www.boardsource.xyz/docs/guides-what_is_qmk) |
| 74 | +- [KMK firmware](https://www.boardsource.xyz/docs/guides-what_is_kmk) |
| 75 | +- [ZMK Firmware](https://www.boardsource.xyz/docs/guides-what_is_zmk) |
| 76 | + |
| 77 | +There are graphical front ends to make it easier to configure keyboards as well. |
| 78 | +These are built on top of the firmware's listed above, so compatibility should be |
| 79 | +checked for those, but just to be sure to include them, I'll list them below. |
| 80 | + |
| 81 | +- [Peg](https://getpeg.xyz/) Built on top of KMK firmware |
| 82 | +- [VIA](https://www.caniusevia.com/) Built on top of QMK |
| 83 | +- [Vial](https://get.vial.today/) Built on top of QMK |
| 84 | + |
| 85 | +## What is a bootloader |
| 86 | + |
| 87 | +Now that we know what firmware there is, and we have the file we want, we need |
| 88 | +to actually flash the keyboard! This is where bootloader comes in. There's 2 |
| 89 | +real modes for a your keyboard to be in. Acting like a keyboard, and waiting for |
| 90 | +the new code to run your keyboard on. It can't do both at the same time |
| 91 | +(usually, expections are listed later). In order to get your keyboard ready to |
| 92 | +get into bootloader, there's a few ways depending on your controller. Most |
| 93 | +keyboards you can quickly double tap the reset button on the keyboard's PCB. |
| 94 | +This will take you into the bootloader. If you have a blok, integrated |
| 95 | +controller keyboard, or nice!nano, you will probably see a new "flash drive" |
| 96 | +appear on your system. It's usually called RPI-RP2, or NiceNano or something |
| 97 | +similar. If you have an older board, or Pro Micro or Elite C, you will not see |
| 98 | +this drive, and a new serial device will appear. If you have a serial device, |
| 99 | +you are using QMK and the tools should find it automatically. Blok can also boot |
| 100 | +into bootloader by holding the BOOT button on the edge of the board. Don't get |
| 101 | +it mixed up with the other reset button back there or it won't work. |
| 102 | + |
| 103 | +### KMK and bootloader |
| 104 | + |
| 105 | +KMK/Peg break the rule of needing to be in bootloader to flash, most of the |
| 106 | +time. If you want to switch from another firmware to KMK/Peg, you'll need to |
| 107 | +flash it's "hypervisor" in the bootloader, but it's no more difficult than |
| 108 | +dropping a file on just like any other firmware. You also may want to get |
| 109 | +updates for it every once in a while. Further instructions for that process can |
| 110 | +be found [here](https://getpeg.xyz/docs/board-update) and are only needed for KMK/Peg. |
| 111 | + |
| 112 | + |
| 113 | +## Wrap up |
| 114 | + |
| 115 | +That should be almost everything you need to know about the basics of flashing |
| 116 | +basically any controller, and how to get into the bootloader. Feel free to reach |
| 117 | +out on our discord if you have any further questions or issues! We'll be glad to |
| 118 | +help you out. |
0 commit comments