Skip to content

Commit 7b2e6f2

Browse files
committed
feat: flashing terms/bootloader guide
1 parent 1e8a39e commit 7b2e6f2

File tree

1 file changed

+118
-0
lines changed

1 file changed

+118
-0
lines changed

guides/flashing_terms.md

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
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

Comments
 (0)