+
| Board | Controller | # I/O |
| :------------ |:-------------:| ------:|
@@ -74,13 +74,13 @@ Established materials and techniques include:
| Technique | Examples | Pros | Cons | Image
| :-----------| :------- | :------ | :--- | :---
-| Lengths of wire with stripped segments | [Sasha Solomon's Dactyl](https://medium.com/@sachee/building-my-first-keyboard-and-you-can-too-512c0f8a4c5f) and [Cribbit's modern hand wire](https://geekhack.org/index.php?topic=87689.0) | Neat and tidy | Some effort in stripping the wire | 
-| Short lengths of wire | [u/xicolinguada's ortho build](https://www.reddit.com/r/MechanicalKeyboards/comments/c39k4f/my_first_hand_wired_keyboard_its_not_perfect_but/) | Easier to strip the wire | More difficult to place | 
-| Magnet/Enamelled wire | [fknraiden's custom board](https://geekhack.org/index.php?topic=74223.0) | Can be directly soldered onto (insulation burns off with heat) | Appearance? | 
-| Bending the legs of the diodes for the rows | [Matt3o's Brownfox](https://deskthority.net/viewtopic.php?f=7&t=6050) | Fewer solder joints required | Uninsulated | 
-| Using rigid wiring (e.g. brass tube) | [u/d_stilgar's invisible hardline](https://www.reddit.com/r/MechanicalKeyboards/comments/8aw5j2/invisible_hardline_keyboard_progress_update_april/) and [u/jonasfasler's first attempt](https://www.reddit.com/r/MechanicalKeyboards/comments/de1jyv/my_first_attempt_at_handwiring_a_keyboard/) | Very pretty | More difficult. No physical insulation | 
-| Bare wire with insulation added after (e.g. kapton tape) | [Matt3o's 65% on his website](https://matt3o.com/hand-wiring-a-custom-keyboard/) | Easier (no wire stripping required) | Not as attractive | 
-| Copper tape | [ManuForm Dactyl](https://github.com/tshort/dactyl-keyboard) | Very easy | Only really works when your plate/case aligns with the bottom of your switches | 
+| Lengths of wire with stripped segments | [Sasha Solomon's Dactyl](https://medium.com/@sachee/building-my-first-keyboard-and-you-can-too-512c0f8a4c5f) and [Cribbit's modern hand wire](https://geekhack.org/index.php?topic=87689.0) | Neat and tidy | Some effort in stripping the wire | 
+| Short lengths of wire | [u/xicolinguada's ortho build](https://www.reddit.com/r/MechanicalKeyboards/comments/c39k4f/my_first_hand_wired_keyboard_its_not_perfect_but/) | Easier to strip the wire | More difficult to place | 
+| Magnet/Enamelled wire | [fknraiden's custom board](https://geekhack.org/index.php?topic=74223.0) | Can be directly soldered onto (insulation burns off with heat) | Appearance? | 
+| Bending the legs of the diodes for the rows | [Matt3o's Brownfox](https://deskthority.net/viewtopic.php?f=7&t=6050) | Fewer solder joints required | Uninsulated | 
+| Using rigid wiring (e.g. brass tube) | [u/d_stilgar's invisible hardline](https://www.reddit.com/r/MechanicalKeyboards/comments/8aw5j2/invisible_hardline_keyboard_progress_update_april/) and [u/jonasfasler's first attempt](https://www.reddit.com/r/MechanicalKeyboards/comments/de1jyv/my_first_attempt_at_handwiring_a_keyboard/) | Very pretty | More difficult. No physical insulation | 
+| Bare wire with insulation added after (e.g. kapton tape) | [Matt3o's 65% on his website](https://matt3o.com/hand-wiring-a-custom-keyboard/) | Easier (no wire stripping required) | Not as attractive | 
+| Copper tape | [ManuForm Dactyl](https://github.com/tshort/dactyl-keyboard) | Very easy | Only really works when your plate/case aligns with the bottom of your switches | 
Note that these methods can be combined. Prepare your lengths of wire before moving on to soldering.
@@ -97,11 +97,11 @@ There are a lot of soldering guides and tips available elsewhere but here are so
To ensure a strong solder joint you want a good amount of contact between the solder and the two pieces of metal you are connecting. A good way of doing this (though not required) is looping around pins or twisting wires together before applying solder.
-
+
If your diodes are on a packaging strip and need a bend in them (either the start of a loop or for connecting to its neighbour) this can easily done by bending it over something straight like the edge of a box, table, or ruler. This also helps keep track of the direction of the diode as all the bends will be on the same side.
-
+
If your iron has temperature control, set it to 315ºC (600ºF).
@@ -164,7 +164,7 @@ Cut wires to the length of the distance from the a point on each column/row to t
Ribbon cable can be used to keep this extra tidy. You may also want to consider routing the wires beneath the existing columns/rows.
-
+
As you solder the wires to the controller make a note of which row/column is going to which pin on the controller as we'll use this data to setup the matrix when we create the firmware.
diff --git a/docs/newbs_building_firmware_configurator.md b/docs/newbs_building_firmware_configurator.md
index 85522e405c..6d441311dc 100644
--- a/docs/newbs_building_firmware_configurator.md
+++ b/docs/newbs_building_firmware_configurator.md
@@ -1,6 +1,6 @@
# QMK Configurator
-[](https://config.qmk.fm/)
+[](https://config.qmk.fm/)
The [QMK Configurator](https://config.qmk.fm) is an online graphical user interface that generates QMK Firmware `.hex` or `.bin` files.
diff --git a/docs/newbs_external_userspace.md b/docs/newbs_external_userspace.md
index fdc998c37a..9f818f46f9 100644
--- a/docs/newbs_external_userspace.md
+++ b/docs/newbs_external_userspace.md
@@ -32,11 +32,11 @@ Building locally has a much shorter turnaround time than waiting for GitHub Acti
A basic skeleton External Userspace repository can be found [here](https://github.com/qmk/qmk_userspace). If you wish to keep your keymaps on GitHub (strongly recommended!), you can fork the repository and use it as a base:
-
+
Going ahead with your fork will copy it to your account, at which point you can clone it to your local machine and begin adding your keymaps:
-
+
```sh
cd $HOME
@@ -99,8 +99,8 @@ All firmware builds you've added to the External Userspace build targets will be
GitHub Actions can be used to automatically build your keymaps whenever you push changes to your External Userspace repository. If you have set up your list of build targets, this is as simple as enabling workflows in the GitHub repository settings:
-
+
Any push will result in compilation of all configured builds, and once completed a new release containing the newly-minted firmware files will be created on GitHub, which you can subsequently download and flash to your keyboard:
-
+
diff --git a/docs/other_eclipse.md b/docs/other_eclipse.md
index 5a0228efce..1745f08932 100644
--- a/docs/other_eclipse.md
+++ b/docs/other_eclipse.md
@@ -66,7 +66,7 @@ Once both plugins are installed, restart Eclipse as prompted.
* Select the _AVR-GCC Toolchain_;
* Keep the rest as-is and click Finish
- 
+ 
3. The project will now be loaded and indexed. Its files can be browsed easily through the _Project Explorer_ on the left.
diff --git a/docs/other_vscode.md b/docs/other_vscode.md
index 0b39746a6e..3bd7e3f44f 100644
--- a/docs/other_vscode.md
+++ b/docs/other_vscode.md
@@ -174,7 +174,7 @@ You'll need to perform some modifications to the file above in order to target y
* `"armToolchainPath"`: _[Optional]_ The path to the ARM toolchain installation location on Windows -- under normal circumstances Linux/macOS will auto-detect this correctly and will not need to be specified.
::: warning
-Windows builds of QMK Firmware are generally compiled using QMK MSYS, and the path to gdb's location (`C:\\QMK_MSYS\\mingw64\\bin`) needs to be specified under `armToolchainPath` for it to be detected. You may also need to change the GDB path to point at `C:\\QMK_MSYS\\mingw64\\bin\\gdb-multiarch.exe` in the VSCode Cortex-Debug user settings: 
+Windows builds of QMK Firmware are generally compiled using QMK MSYS, and the path to gdb's location (`C:\\QMK_MSYS\\mingw64\\bin`) needs to be specified under `armToolchainPath` for it to be detected. You may also need to change the GDB path to point at `C:\\QMK_MSYS\\mingw64\\bin\\gdb-multiarch.exe` in the VSCode Cortex-Debug user settings: 
:::
The following modifications must be made to the keyboard's `rules.mk` file to enable debug information and disable optimisations -- this will ensure breakpoints and variable viewing works correctly:
diff --git a/docs/platformdev_blackpill_f4x1.md b/docs/platformdev_blackpill_f4x1.md
index a8d21c255c..e9af534e58 100644
--- a/docs/platformdev_blackpill_f4x1.md
+++ b/docs/platformdev_blackpill_f4x1.md
@@ -7,7 +7,7 @@ The WeAct Blackpill is a popular choice for handwired boards, as it offers a pow
* [WeAct GitHub for F4x1 Blackpill](https://github.com/WeActStudio/WeActStudio.MiniSTM32F4x1)
* Unfortunately, due to supply issues official WeAct F411 based blackpills may not be available.
-
+
## Pin Usage Limitations
diff --git a/docs/platformdev_proton_c.md b/docs/platformdev_proton_c.md
index 3afec893fa..16eeb7b28a 100644
--- a/docs/platformdev_proton_c.md
+++ b/docs/platformdev_proton_c.md
@@ -2,7 +2,7 @@
The Proton C is an Arm STM32F303xC based drop-in replacement for the Pro Micro.
-
+
#### Features
diff --git a/docs/platformdev_rp2040.md b/docs/platformdev_rp2040.md
index 1269ffeeb5..346cae58dc 100644
--- a/docs/platformdev_rp2040.md
+++ b/docs/platformdev_rp2040.md
@@ -17,8 +17,8 @@ The following table shows the current driver status for peripherals on RP2040 MC
## GPIO
-
-
+
+
::: warning
The GPIO pins of the RP2040 are not 5V tolerant!
diff --git a/docs/public/0GNIYY0.jpg b/docs/public/0GNIYY0.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ccf2f5dcbedf4853d34ed86762c0863342f981ef
GIT binary patch
literal 97616
zcmex=yHr&d6S>Z~ChD!*z*epE;^oN*&LpwXwUa=AXZt`7D1=rpXpRpS_Z6KZ?$)
z-}yW}^2@QzeTq7{0mXXjnt9IZ+}ly5z1e2x*@~~q=8 75mpRV^3ZK7d
zpZl)xS#AEp50R&Tshd9!?XBhK-+w#(lTyE2iBq{bwg!NG)^8-gxTeq%AJ1Cxmns
z1WeGIY&A1fVC__uPKLRGlixpCvpnF~))UhmCSNj)6^;}+bN5+LmOzu2rWR+&2~Ea}
zGiTj4RO4K*M6s7uh2_En#s;; 7Tv#7A~(t8WY6TKmRi4`9C%Yb
zF@3jMhp!y(l$2w#{8vJ5F5K$KB5{cG*Qy=yiG{&DOD2~udAoaZ#uwp*Z`m$>wXS+E
zp5%7@)YOm;eWk^}U*4U1;L6HfQ+*8=zE$a0xqHI)?X!1nA*ZzZ|D9ht-+$NK6;6?7
zE~`xToEE%YK5>)P?XCQ3F(D_8y*4 uwv;HTCi=
z+bgTODl*SLT4H$W-?NV~sWC5(<(|4>Ss85i=ySo(4r#SNt9aIUe5>|SSTW^tz}BQG
zzZ7??omsh)!>s$PS*v)NNVcu=!k*5l$(&8XKjqb{7T!I(+|K90(}P_%qAD-jC+Ef=
zoa(H3)T^RXW0~lSGYh6J({eFe6r`7SYKLVg-&JR> UTuX7^XMdhpiSR8-4$u3-5U=i!IFvRCS!!4G~mG9&yTtE0b
zVb7_59aB3G{quXgZU429FMlGx-Z}X>ee1F3N47uT;q1d3+Tp-D
zbGxd?#Fd*m#48)FV&`&;?i~8HK_?*QLi#@Oz@SNI
zZf1l8DKTD~WXQH*QG(P(<0WA;`lh^`=rBF(iuAfw1zC1t2KYghTQ`tIG_1vEq
z%EQ^(>uOBO_1MZ~y0X{(i27}x`?GDX&A<8fqUrtHuYY=FH^2M%FXa>Qp5^w+_WqA%
zxcv>U^Y@K8Z+kB+)NR(e;_D5?UrtI%9xi&d&~eRy5*?|m&y&l$*Y%VfD9$+_apJa?
z! BY_Ao#6Ij-XdG)g6AozJ;6u(B5od=BRD1CR%(ws&nk1?MTVR26$Lm@o6VdL{xfV$Onk6BS6CwD*rzfx
z3q>D^mz{Dk!g0+0{~69qGCEr#C@p-kG&Y{C=RZTm4VQ06_HmxodXad$oi&%{3QIu19#iaWmbpXkz1f
zmsc&Kt8QL(j#`nMIH4<1TH(&o-d#%bl`@VuTC1HEi+>^UD`VPh>5{vuhvS`>{gGJp
zp!p{I!lwzpC7vA>{C)T-&z|!(cE-nRwjMptUz57YSpFbiJ?G>YJAL7sUS{Ek%&a6U
ze#N(nBzK&6b)T!