Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

更新到qmk主分支 #2

Merged
merged 98 commits into from
Mar 26, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
40d6766
[Keyboard] Add Y&R Studio zhou65 keyboard (#14192)
jiaxin96 Mar 8, 2022
65eb0f9
[keymap] Add via support for Iskar (#16575)
drewpyun Mar 8, 2022
b593cfc
`qmk info`: Nicer rendering of big-ass enter (#16541)
fauxpark Mar 8, 2022
d38696a
[Keyboard] Add Rama Works M4-A (#16570)
nautxx Mar 8, 2022
3347b63
handwired/misterdeck refactor (#16572)
fauxpark Mar 8, 2022
022e1fd
Add Big Switch Seat (#16524)
nooges Mar 8, 2022
5244b13
Fix yandrstudio/zhou65 (#16589)
waffle87 Mar 9, 2022
ed169a6
Correct order of takashicompany/dogtag info.json (#16591)
zvecr Mar 9, 2022
c5c5d37
[Keymap] Added RGB_Matrix effect mode for naked48/j73gl (#16578)
Salicylic-acid3 Mar 9, 2022
6ab5a7d
[Keymap] Personal keymap for crkbd (#16546)
Jpe230 Mar 9, 2022
dc67fd9
Various improvements for the AnnePro2 (#16579)
Jpe230 Mar 9, 2022
db16271
Add Gergoplex keymap for tgrosinger (#15148)
tgrosinger Mar 9, 2022
caeb213
Add macOS-friendly keymap for GMMK Pro (ANSI) (#14333)
zvuc Mar 9, 2022
708b3f9
[Keyboard] Size reduction for kbdfans/kbd67/mkiirgb_iso (#16601)
waffle87 Mar 10, 2022
8bcb77c
Personalizacion del teclado de AdG (#15738)
maherma-adg Mar 10, 2022
9d0153d
[keyboard]Add v1 to jones keyboard (#14405)
jpskenn Mar 10, 2022
dc8db65
[KEYBOARD] keyboardio/atreus: VIA support (#16604)
haoxiangliew Mar 10, 2022
bd70f52
Remove `matrix_key_count()` (#16603)
fauxpark Mar 10, 2022
265b96a
[Keyboard] Add omega4 (#16464)
makenova Mar 10, 2022
61a8a60
[Keyboard] Add MNK65 (#16400)
kopibeng Mar 10, 2022
98da119
era1112 keymap for preonic (#16064)
era1112 Mar 10, 2022
fc7a41f
[Keyboard] lily58/glow_enc (#16101)
LVladymyr Mar 10, 2022
b33fdc2
add chofstede keymap for gmmk/pro/iso (#16045)
chofstede Mar 10, 2022
6c40b68
[Docs] Include ASCII diagram to explain tap-hold modes (#15873)
wongjiahau Mar 10, 2022
b75f669
CLI: Fix 'cd' subcommand on Windows (#16610)
Erovia Mar 10, 2022
ee71362
Personal user space and CRKBD R2G keymap (#15888)
RMeli Mar 10, 2022
003231a
[Keyboard] Add Mechlovin Infinity87.5 PCB (#15163)
mechlovin Mar 11, 2022
74b24e4
DZ64RGB: add info.json (#16616)
noroadsleft Mar 11, 2022
3f79708
Acheron Elongate Delta: add info.json (#16615)
noroadsleft Mar 11, 2022
86b1231
docs: fix code sample (#16623)
Kriechi Mar 12, 2022
20424fd
[Keyboard] Add Glitch (#16444)
matthewdias Mar 13, 2022
dccb571
[Keyboard] Add damapad (#16443)
matthewdias Mar 13, 2022
08794fe
[Keyboard] add missing endif in glitch keyboard (#16629)
waffle87 Mar 13, 2022
1f63dbf
[Keymap] Update personal crkbd keymap (#16624)
Jpe230 Mar 13, 2022
b906af0
helix:edvorakjp keymap change to use split_common (#16532)
mtei Mar 13, 2022
109c60f
[Keyboard] Add support for Jels60 (#16605)
Jels02 Mar 13, 2022
8fe3864
[Keyboard] Add "Uno" rev2 (#14071)
spencer-p Mar 13, 2022
df37705
USB-USB converter cleanup (#16618)
fauxpark Mar 13, 2022
c0f4179
Move keyboard USB IDs and strings to data driven: 0-9 (#16481)
fauxpark Mar 13, 2022
dde4120
ISP flashing guide: add instructions for flashing STM32duino bootload…
fauxpark Mar 13, 2022
8d90cf3
Fix 40percentclub USB descriptors (#16638)
waffle87 Mar 14, 2022
c17323b
bolsa/damapad - Fix missing layout macro (#16639)
zvecr Mar 14, 2022
5fb269b
keebio/iris: Add ifdefs to encoder callbacks (#16642)
fauxpark Mar 14, 2022
6a6a333
Disable RGB matrix pixel animations for some boards (#16643)
fauxpark Mar 14, 2022
a12d58c
[Keyboard] Add BAMFK-1 (#16409)
nooges Mar 14, 2022
6c11579
[Keyboard] Add via keymap to AL1 (#16499)
Yakbats Mar 14, 2022
a939adb
Sentence correction (#16650)
ethsol Mar 14, 2022
7fde309
[Keyboard] Add Kay65 PCB by Team Mechlovin' (#15565)
mechlovin Mar 15, 2022
04826d1
[Keyboard] evancookaudio sleepingdinosaur v2 (#16625)
evanmcook Mar 15, 2022
5e5047f
[Keyboard westm68 rev1 and fine tune westm boards (#16528)
wttsn Mar 15, 2022
36ddb56
[Keyboard] Fix mechlovin/kay65 (#16653)
waffle87 Mar 15, 2022
1ef4e30
Fix evancookaudio/sleepingdinosaur (#16654)
waffle87 Mar 15, 2022
87bb1a3
[Keyboard] Add Bacca70 keyboard (#16626)
thompson-ele Mar 15, 2022
92a9e7c
[Keyboard] Adding Gerald65 (#15872)
PaperCraneKeyboards Mar 15, 2022
9aaf4a5
Add split keyboard example for Bootmagic Lite (#16349)
filterpaper Mar 15, 2022
e94c2df
[Keyboard] Io mini1800 (#16115)
jpuerto96 Mar 15, 2022
e9bf95e
[Keyboard] Fix westm/westm68 compliation errors (#16657)
waffle87 Mar 15, 2022
46e85de
Add merge workflow for XAP branch (#16652)
zvecr Mar 15, 2022
764dc18
Remove `NO_ACTION_MACRO` and `NO_ACTION_FUNCTION` from keyboard confi…
fauxpark Mar 15, 2022
a808c29
[Keymap] Planck Keymap: tomkonidas (#15869)
tomkonidas Mar 15, 2022
77aafd8
[Keyboard] Add Dolice keyboard (#16186)
ebastler Mar 15, 2022
8bffc61
Ensure dependent CI workflows run (#16662)
zvecr Mar 15, 2022
f6f4d85
yugo_m enhancement: include all available key positions (#16216)
an-achronism Mar 16, 2022
fded67f
[MB-65S] Change layout to follow change request from OEM (#16663)
AnthonyNguyen168 Mar 16, 2022
a867cfc
Update the AL1 Vender ID (#16660)
Yakbats Mar 16, 2022
8c5779f
Fix m3n3van and minim keyboard names in keymap JSON (#16665)
fauxpark Mar 16, 2022
d5d2a01
gboards/butterstick: move steno rules config to keymap level (#16666)
fauxpark Mar 16, 2022
193dd01
[Keyboard] Add nullbits TIDBIT (#15182)
jaygreco Mar 16, 2022
417f089
Print out generated files during build (#16672)
zvecr Mar 16, 2022
e5823b5
[CLI] Add common util for dumping generated content (#16674)
zvecr Mar 18, 2022
ed773ab
Relocate CLI git interactions (#16682)
zvecr Mar 18, 2022
7732425
annepro2: Add more LED functionalities to default-layer-indicators (#…
Metaln00b Mar 18, 2022
61c644f
[Keyboard] Update Tractyl Manuform config files (#16684)
drashna Mar 18, 2022
06b6729
[Keymap] Update some code and keyboard rules (#16680)
stanrc85 Mar 19, 2022
e354cbe
`device_ver` -> `device_version` for some more boards (#16685)
fauxpark Mar 19, 2022
3502bbb
Fix typo in docs/ref_functions.md (#16690)
leviport Mar 19, 2022
047ef3c
VUSB - Use correct endpoint poll for VIA (#16691)
zvecr Mar 19, 2022
2f095b8
qmk.path.FileType: fix argument handling (#16693)
fauxpark Mar 19, 2022
6125f7b
Add MutePad keyboard (Handwired) (#16590)
Mar 20, 2022
1bc8793
Add Rart75 hotswap and support via (#16619)
alabahuy Mar 20, 2022
669ad3c
Droxx keymap (#16607)
furfuzz Mar 20, 2022
7eb6f86
[Keyboard] add oled_task_kb() into keyboards/helix/rev2/rev2.c (#16697)
mtei Mar 21, 2022
f610011
[Keymap] personal keymap, ergodox_ez and atreus / dvorak_42_key (#16695)
luc-vocab Mar 22, 2022
c803c50
[Keyboard] Add Axolstudio Foundation Gamma (#15948)
kb-elmo Mar 23, 2022
28bd777
[Keyboard] Graystudio Apollo80 (#16469)
ChrisBeswick Mar 23, 2022
a772a7f
[Keymap] Input Club's Whitefox "True Fox" (#16711)
0x647262 Mar 23, 2022
74f4682
[Keyboard] Waffling60 - readme update (#16707)
4pplet Mar 23, 2022
92d38c3
[Keymap] Add dhertz keychron map v0 (#16571)
Dhertz Mar 23, 2022
08aa54b
[Keymap] Xiudi XD75 Finnish/Swedish keymap (#16311)
pallarim Mar 23, 2022
4a3b410
[Bug] Fix unused variable error when using ChibiOS Bitbang serial dri…
drashna Mar 23, 2022
55b3b2b
[Keyboard] Add support for XT60 (#16708)
kopibeng Mar 23, 2022
e335d62
[Keyboard] Add keyboard level encoder function for GMMK Pro (#16721)
waffle87 Mar 24, 2022
980a1b0
[Keymap] ergodox: updating osx_whiskey_tango_foxtrot_capslock to use …
nathanejohnson Mar 24, 2022
f7a5ec2
update kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala keymap (#16725)
carlosala Mar 24, 2022
efc9c52
CLI: Add 'via2json' subcommand (#16468)
Erovia Mar 24, 2022
53a88af
[Keymap] corne and planck keyboards keymaps (#15570)
antosha417 Mar 26, 2022
7e0dde1
[Keyboard] Add YDKB Grape PCB (#16661)
somepin Mar 26, 2022
084df6a
[Keyboard] Add nt210 (#16461)
evyd13 Mar 26, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 1 addition & 8 deletions .github/workflows/develop_update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ on:
branches:
- master


jobs:
develop_update:
runs-on: ubuntu-latest
Expand All @@ -15,21 +14,15 @@ jobs:
steps:
- uses: actions/checkout@v2
with:
token: ${{ secrets.QMK_BOT_TOKEN }}
fetch-depth: 0

- name: Checkout develop
run: |
git fetch origin master develop
git checkout develop

- name: Check if branch locked
id: check_locked
uses: andstor/file-existence-action@v1
with:
files: ".locked"

- name: Update develop from master
if: steps.check_locked.outputs.files_exists == 'false'
run: |
git config --global user.name "QMK Bot"
git config --global user.email "hello@qmk.fm"
Expand Down
35 changes: 35 additions & 0 deletions .github/workflows/feature_branch_update.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Update feature branches after develop merge

on:
push:
branches:
- develop

jobs:
feature_branch_update:
runs-on: ubuntu-latest

if: github.repository == 'qmk/qmk_firmware'

strategy:
matrix:
branch:
- xap

steps:
- uses: actions/checkout@v2
with:
token: ${{ secrets.QMK_BOT_TOKEN }}
fetch-depth: 0

- name: Checkout branch
run: |
git fetch origin develop ${{ matrix.branch }}
git checkout ${{ matrix.branch }}

- name: Update branch from develop
run: |
git config --global user.name "QMK Bot"
git config --global user.email "hello@qmk.fm"
git merge origin/develop
git push origin ${{ matrix.branch }}
20 changes: 15 additions & 5 deletions builddefs/build_keyboard.mk
Original file line number Diff line number Diff line change
Expand Up @@ -159,10 +159,14 @@ ifneq ("$(wildcard $(KEYMAP_JSON))", "")

# Add rules to generate the keymap files - indentation here is important
$(KEYMAP_OUTPUT)/src/keymap.c: $(KEYMAP_JSON)
$(QMK_BIN) json2c --quiet --output $(KEYMAP_C) $(KEYMAP_JSON)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) json2c --quiet --output $(KEYMAP_C) $(KEYMAP_JSON))
@$(BUILD_CMD)

$(KEYMAP_OUTPUT)/src/config.h: $(KEYMAP_JSON)
$(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --keymap $(KEYMAP) --output $(KEYMAP_H)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --keymap $(KEYMAP) --output $(KEYMAP_H))
@$(BUILD_CMD)

generated-files: $(KEYMAP_OUTPUT)/src/config.h $(KEYMAP_OUTPUT)/src/keymap.c

Expand Down Expand Up @@ -326,13 +330,19 @@ endif
CONFIG_H += $(KEYBOARD_OUTPUT)/src/info_config.h $(KEYBOARD_OUTPUT)/src/layouts.h

$(KEYBOARD_OUTPUT)/src/info_config.h: $(INFO_JSON_FILES)
$(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/info_config.h
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/info_config.h)
@$(BUILD_CMD)

$(KEYBOARD_OUTPUT)/src/default_keyboard.h: $(INFO_JSON_FILES)
$(QMK_BIN) generate-keyboard-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/default_keyboard.h
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-keyboard-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/default_keyboard.h)
@$(BUILD_CMD)

$(KEYBOARD_OUTPUT)/src/layouts.h: $(INFO_JSON_FILES)
$(QMK_BIN) generate-layouts --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/layouts.h
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-layouts --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/layouts.h)
@$(BUILD_CMD)

generated-files: $(KEYBOARD_OUTPUT)/src/info_config.h $(KEYBOARD_OUTPUT)/src/default_keyboard.h $(KEYBOARD_OUTPUT)/src/layouts.h

Expand Down
1 change: 1 addition & 0 deletions builddefs/message.mk
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ MSG_COMPILING_CXX = Compiling:
MSG_ASSEMBLING = Assembling:
MSG_CLEANING = Cleaning project:
MSG_CREATING_LIBRARY = Creating library:
MSG_GENERATING = Generating:
MSG_SUBMODULE_DIRTY = $(WARN_COLOR)WARNING:$(NO_COLOR) Some git submodules are out of date or modified.\n\
Please consider running $(BOLD)make git-submodule$(NO_COLOR).\n\n
MSG_NO_CMP = $(ERROR_COLOR)Error:$(NO_COLOR)$(BOLD) cmp command not found, please install diffutils\n$(NO_COLOR)
Expand Down
17 changes: 17 additions & 0 deletions docs/cli_commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,23 @@ This command cleans up the `.build` folder. If `--all` is passed, any .hex or .b
qmk clean [-a]
```

## `qmk via2json`

This command an generate a keymap.json from a VIA keymap backup. Both the layers and the macros are converted, enabling users to easily move away from a VIA-enabled firmware without writing any code or reimplementing their keymaps in QMK Configurator.

**Usage**:

```
qmk via2json -kb KEYBOARD [-l LAYOUT] [-km KEYMAP] [-o OUTPUT] filename
```

**Example:**

```
$ qmk via2json -kb ai03/polaris -o polaris_keymap.json polaris_via_backup.json
Ψ Wrote keymap to /home/you/qmk_firmware/polaris_keymap.json
```

---

# Developer Commands
Expand Down
29 changes: 25 additions & 4 deletions docs/feature_bootmagic.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,35 @@ And to trigger the bootloader, you hold this key down when plugging the keyboard

## Split Keyboards

When handedness is predetermined via an option like `SPLIT_HAND_PIN`, you might need to configure a different key between halves. To do so, add these entries to your `config.h` file:
When [handedness](feature_split_keyboard.md#setting-handedness) is predetermined via options like `SPLIT_HAND_PIN` or `EE_HANDS`, you might need to configure a different key between halves. To identify the correct key for the right half, examine the split key matrix defined in the `<keyboard>.h` file, e.g.:

```c
#define LAYOUT_split_3x5_2( \
L01, L02, L03, L04, L05, R01, R02, R03, R04, R05, \
L06, L07, L08, L09, L10, R06, R07, R08, R09, R10, \
L11, L12, L13, L14, L15, R11, R12, R13, R14, R15, \
L16, L17, R16, R17 \
) \
{ \
{ L01, L02, L03, L04, L05 }, \
{ L06, L07, L08, L09, L10 }, \
{ L11, L12, L13, L14, L15 }, \
{ L16, L17, KC_NO, KC_NO, KC_NO }, \
{ R01, R02, R03, R04, R05 }, \
{ R06, R07, R08, R09, R10 }, \
{ R11, R12, R13, R14, R15 }, \
{ R16, R17, KC_NO, KC_NO, KC_NO } \
}
```

If you pick the top right key for the right half, it is `R05` on the top layout. Within the key matrix below, `R05` is located on row 4 columnn 4. To use that key as the right half's Bootmagic Lite trigger, add these entries to your `config.h` file:

```c
#define BOOTMAGIC_LITE_ROW_RIGHT 4
#define BOOTMAGIC_LITE_COLUMN_RIGHT 1
#define BOOTMAGIC_LITE_COLUMN_RIGHT 4
```

By default, these values are not set.
?> These values are not set by default.

## Advanced Bootmagic Lite

Expand All @@ -51,7 +72,7 @@ void bootmagic_lite(void) {
}
```

You can additional feature here. For instance, resetting the EEPROM or requiring additional keys to be pressed to trigger Bootmagic Lite. Keep in mind that `bootmagic_lite` is called before a majority of features are initialized in the firmware.
You can define additional logic here. For instance, resetting the EEPROM or requiring additional keys to be pressed to trigger Bootmagic Lite. Keep in mind that `bootmagic_lite` is called before a majority of features are initialized in the firmware.

## Addenda

Expand Down
3 changes: 2 additions & 1 deletion docs/feature_pointing_device.md
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,8 @@ report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) {
if (set_scrolling) {
mouse_report.h = mouse_report.x;
mouse_report.v = mouse_report.y;
mouse_report.x = mouse_report.y = 0
mouse_report.x = 0;
mouse_report.y = 0;
}
return mouse_report;
}
Expand Down
92 changes: 91 additions & 1 deletion docs/isp_flashing_guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ In order to flash a microcontroller over USB, it needs something called a bootlo

However, it can sometimes happen that the bootloader becomes corrupted and needs reflashing, or you may want to change the bootloader to another one. It's not possible to do this with the existing bootloader, because, of course, it is already running, and cannot overwrite itself. Instead, you will need to ISP flash the microcontroller.

There are several different kinds of bootloaders available for AVR microcontrollers. Most STM32 ARM-based microcontrollers already have a USB-capable bootloader in ROM, so generally do not need to be ISP flashed.
There are several different kinds of bootloaders available for AVR microcontrollers. Most STM32 ARM-based microcontrollers already have a USB-capable bootloader in ROM, so generally do not need to be ISP flashed. The one current exception is the [STM32F103](#flashing-stm32duino-bootloader).

## Hardware

Expand Down Expand Up @@ -260,3 +260,93 @@ For mass production purposes, it is possible to join the bootloader and QMK firm
4. Save it as a new file, for example `<keyboard>_<keymap>_production.hex`.

You can then ISP flash this combined firmware instead, which allows you to skip the extra step of flashing the QMK firmware over USB.

## Flashing STM32Duino Bootloader

As mentioned above, *most* supported STM32 devices already possess a USB DFU bootloader which cannot be overwritten, however the ROM bootloader in the STM32F103 used on the Bluepill is not USB capable. In this case an ST-Link V2 dongle is required to upload the STM32Duino bootloader to the device. These can be readily purchased for relatively cheap on eBay and other places.

This bootloader is a descendant of the Maple bootloader by Leaflabs, and is compatible with dfu-util.

### Software

To communicate with the ST-Link, you must install the following packages:

* **macOS:** `brew install stlink openocd`
* **Windows (MSYS2):** `pacman -S mingw-w64-x86_64-stlink mingw-w64-x86_64-openocd`
* **Linux:** will vary by distribution, but will likely be `stlink` and `openocd` through your particular package manager

Additionally, you may need to update the ST-Link's firmware with the [`STSW-LINK007`](https://www.st.com/en/development-tools/stsw-link007.html) application. Note you will be asked to provide your name and email address if you do not have an ST.com account (this does not create one).

Finally, the bootloader binary itself can be downloaded from [here](https://github.com/rogerclarkmelbourne/STM32duino-bootloader/blob/master/bootloader_only_binaries/generic_boot20_pc13.bin).

### Wiring

Connect the four-pin header on the end of the Bluepill to the matching pins on the ST-Link (the pinout will usually be printed on the side):

|ST-Link |Bluepill|
|-------------|--------|
|`GND` (6) |`GND` |
|`SWCLK` (2) |`DCLK` |
|`SWDIO` (4) |`DIO` |
|`3.3V` (8) |`3.3` |

### Flashing

Firstly, make sure both jumpers on the Bluepill are set to 0.

Check that the ST-Link can talk to the Bluepill by running `st-info --probe`:

```
Found 1 stlink programmers
version: V2J37S7
serial: 2C1219002B135937334D4E00
flash: 65536 (pagesize: 1024)
sram: 20480
chipid: 0x0410
descr: F1xx Medium-density
```

If the reported `chipid` is `0x0410`, everything is working. If it is `0x0000`, check your wiring, and try swapping the `SWDIO` and `SWCLK` pins, as some ST-Link dongles may have incorrect pinouts.

Next, run the following command:

```
st-flash --reset --format binary write <path-to-bootloader> 0x08000000
```

where `<path-to-bootloader>` is the path to the bootloader `.bin` file above. You can run this command from the directory you downloaded it to, so that you can simply pass in the filename.

If all goes well, you should get output similar to the following:

```
st-flash 1.7.0
2022-03-08T12:16:30 INFO common.c: F1xx Medium-density: 20 KiB SRAM, 64 KiB flash in at least 1 KiB pages.
file generic_boot20_pc13.bin md5 checksum: 333c30605e739ce9bedee5999fdaf81b, stlink checksum: 0x0008e534
2022-03-08T12:16:30 INFO common.c: Attempting to write 7172 (0x1c04) bytes to stm32 address: 134217728 (0x8000000)
2022-03-08T12:16:30 INFO common.c: Flash page at addr: 0x08000000 erased
2022-03-08T12:16:30 INFO common.c: Flash page at addr: 0x08000400 erased
2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08000800 erased
2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08000c00 erased
2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08001000 erased
2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08001400 erased
2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08001800 erased
2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08001c00 erased
2022-03-08T12:16:31 INFO common.c: Finished erasing 8 pages of 1024 (0x400) bytes
2022-03-08T12:16:31 INFO common.c: Starting Flash write for VL/F0/F3/F1_XL
2022-03-08T12:16:31 INFO flash_loader.c: Successfully loaded flash loader in sram
2022-03-08T12:16:31 INFO flash_loader.c: Clear DFSR
8/ 8 pages written
2022-03-08T12:16:31 INFO common.c: Starting verification of write complete
2022-03-08T12:16:31 INFO common.c: Flash written and verified! jolly good!
2022-03-08T12:16:31 WARN common.c: NRST is not connected
```

Otherwise, if you receive an `Unknown memory region` error, run the following command to unlock the STM32F103:

```
openocd -f interface/stlink.cfg -f target/stm32f1x.cfg -c "init; reset halt; stm32f1x unlock 0; reset halt; exit"
```

Then re-plug the ST-Link and try again.

After all of this, unplug the Bluepill from the ST-Link and connect it to USB. It should now be ready to flash using dfu-util, the QMK CLI or Toolbox.
2 changes: 1 addition & 1 deletion docs/ref_functions.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# List of Useful Core Functions To Make Your Keyboard Better

There are a lot of hidden functions in QMK that are incredible useful, or may add a bit of functionality that you've been wanting. Functions that are specific to certain features are not included here, as those will be on their respective feature page.
There are a lot of hidden functions in QMK that are incredibly useful, or may add a bit of functionality that you've been wanting. Functions that are specific to certain features are not included here, as those will be on their respective feature page.

## (OLKB) Tri Layers :id=olkb-tri-layers

Expand Down
Loading