Skip to content

Commit 436ad7a

Browse files
authored
Merge pull request #12 from CVYY39/main
Documentation updates
2 parents e39c618 + b444046 commit 436ad7a

File tree

9 files changed

+124
-121
lines changed

9 files changed

+124
-121
lines changed

docs/CONTRIBUTING.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ you do, please read the following guidelines.
55

66
## Got a question or problem?
77

8-
For quick questions there's no need to open an issue as you can reach us on [makerdiary/community](https://community.makerdiary.com).
8+
For quick questions there's no need to open an issue, because you can reach us on [makerdiary/community](https://community.makerdiary.com).
99

1010
## Found a bug?
1111

12-
If you found a bug in the source code, you can help us by submitting an issue to the [issue tracker](https://github.com/makerdiary/mx-keyboard/issues) in our GitHub repository. Even better, you can submit a Pull Request with a fix.
12+
If you find a bug in the source code, you can help us by submitting an issue to the [issue tracker](https://github.com/makerdiary/mx-keyboard/issues) in our GitHub repository. Even better, you can submit a Pull Request with a fix.
1313

1414
## Requesting a tutorial
1515

16-
If you don't see what you're looking for, you can request a tutoial by submitting an issue to our GitHub Repository. We'd love to see your feedback!
16+
If you don't see what you're looking for, you can request a tutorial by submitting an issue to our GitHub Repository. We'd love to see your feedback!
1717

18-
<a href="https://github.com/makerdiary/mx-keyboard/issues/new?title=Tutorial%20Request:%20%3Ctitle%3E&body=Description%0A%0ATechnical%20Level%0Abeginner%20%7C%20intermediate%20%7C%20advanced%0A%0ALength%0Ashort%20(%3C%20250%20words)%20%7C%20medium%20(250-500%20words)%20%7C%20long%20(1000%20words+)%0A"><button data-md-color-primary="red-bud" style="width: auto;"><i class="fa fa-github"></i> Request a tutoial</button></a>
18+
<a href="https://github.com/makerdiary/python-keyboard/issues/new?title=Tutorial%20Request:%20%3Ctitle%3E&body=Description%0A%0ATechnical%20Level%0Abeginner%20%7C%20intermediate%20%7C%20advanced%0A%0ALength%0Ashort%20(%3C%20250%20words)%20%7C%20medium%20(250-500%20words)%20%7C%20long%20(1000%20words+)%0A"><button data-md-color-primary="red-bud" style="width: auto;"><i class="fa fa-github"></i>Request a tutorial</button></a>

docs/assembling.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,13 @@
44

55
2. Attach the provided 2.4GHz and NFC cabled PCB antennas to the nRF52840 M.2 module as shown in the figure below:
66

7-
![Attaching Antennas](https://wiki.makerdiary.com/nrf52840-m2-devkit/assets/images/attaching-antennas-to-m2.webp)
7+
![Attaching Antennas](https://wiki.makerdiary.com/nrf52840-m2-devkit/assets/images/attaching-antennas-to-m2.webp)
88

99
3. Insert the module into the connector as shown in the figure below:
1010

11-
!!! Warning "Angle of Insertion"
12-
Angled insertion is allowable and preferred to minimize the insertion force. The angle of insertion is **5° ~ 25°**, **typically 20°**.
13-
14-
![Module Insertion](https://wiki.makerdiary.com/nrf52840-m2-devkit/assets/images/m2-module-insertion.png)
11+
**Warning regarding the angle of insertion: Angled insertion is allowable and is preferred to minimize the insertion force. The angle of insertion is 5° ~ 25°, typically 20°.**
12+
![Module Insertion](https://wiki.makerdiary.com/nrf52840-m2-devkit/assets/images/m2-module-insertion.png)
1513

1614
4. Secure the module using the provided mounting screw as shown in the figure below:
1715

18-
![Secure the module](https://wiki.makerdiary.com/nrf52840-m2-devkit/assets/images/secure-m2-module-screw.png)
19-
16+
![Secure the module](https://wiki.makerdiary.com/nrf52840-m2-devkit/assets/images/secure-m2-module-screw.png)

docs/configuration.md

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# Keyboard Configuration
22

33
M60 is not just a USB HID device, but also a USB storage device. Python code can be saved and executed in the keyboard. When the keyboard powers on, it will run the Python file `code.py` in its USB storage.
4-
In `code.py`, we can modify its keymap, add a macro and add a new feature to keyboard.
4+
Using `code.py`, you can modify they keyboard's keymap, and add macros, Tap-keys and more.
55

66
![](https://gitee.com/makerdiary/python-keyboard/raw/resource/img/CIRCUITPY-en.png)
77

8-
The default content of `code.py` is:
8+
An up-to-date `code.py` is included in this repository. Example content for `code.py` could be:
99

1010
```python
1111

@@ -95,13 +95,15 @@ keyboard.run()
9595

9696
```
9797

98-
`keymap` contains multiple layers of keycodes. `macro_handler` is used to handle all macros. `pairs_handler` is used to handle any pair-keys.
98+
The `keymap` variable can contains multiple layers of keycodes. The `macro_handler` is used to handle all macros. The `pairs_handler` is used to handle any pair-keys.
9999

100-
**When `code.py` is saved, the keyboard will reload it. If `code.py` has a syntax error, the keyboard will stop working. But, don't worry, it wouldn't damage the hardware. Fix the error and save it, then the keyboard will recover**
100+
**When `code.py` is saved, the keyboard will reload it. If `code.py` has a syntax error, the keyboard will stop working. But, don't worry, it will not damage the hardware. Just use another keyboard to fix the error and save the file, and then the keyboard will recover.**
101101

102-
If you know how Python works, configuring the keyboard would be very easy. If not, we have some examples to get started.
102+
## Examples
103103

104-
1. To swap the positions of <kbd>Caps</kbd> and <kbd>LCtrl</kbd>, just swap `CAPS` and `LCTRL` in `layer 0` of `keymap`:
104+
If you already Python, configuring the keyboard is simple. If not, here are some examples to get started.
105+
106+
1. Swap the positions of <kbd>Caps</kbd> and <kbd>LCtrl</kbd>. To do this, just swap `CAPS` and `LCTRL` in `layer 0` of `keymap`:
105107

106108
```python
107109
# layer 0
@@ -114,7 +116,7 @@ If you know how Python works, configuring the keyboard would be very easy. If no
114116
),
115117
```
116118

117-
2. Instead of <kbd>D</kbd>, use <kbd>Caps</kbd> as a Tap-key to activate navigation functions. Only need to change `layer 0` to:
119+
2. IUse <kbd>Caps</kbd> as a Tap-key to activate navigation functions, instead of <kbd>D</kbd>. To implement this, you only need to change `layer 0` to:
118120

119121
```python
120122
# layer 0
@@ -127,7 +129,7 @@ If you know how Python works, configuring the keyboard would be very easy. If no
127129
),
128130
```
129131

130-
2. Add a new macro. Use <kbd>Fn</kbd> and <kbd>Enter</kbd> to trigger No.1 macro. Just add `MACRO(1)` to `layer 1`:
132+
3. Add a new macro. For example, the below uses <kbd>Fn</kbd> and <kbd>Enter</kbd> to trigger macro number 1 (the second macro, after macro number 0). Just add `MACRO(1)` to `layer 1`:
131133

132134
```python
133135
# layer 1
@@ -142,7 +144,7 @@ If you know how Python works, configuring the keyboard would be very easy. If no
142144

143145
To define the function of the macro, please follow [the macro guide](macro.md)
144146

145-
4. Use <kbd>RShift</kbd>, <kbd>RGUI</kbd>, <kbd>Fn</kbd> and <kbd>RCtrl</kbd> as Tap-keys. Tapping them outputs arrows keys (press & release quickly). Just change `layer 0` to:
147+
4. Use <kbd>RShift</kbd>, <kbd>RGUI</kbd>, <kbd>Fn</kbd> and <kbd>RCtrl</kbd> as Tap-keys, so that tapping them (_i.e._, quickly pressing & releasing them) outputs arrows keys. To do this, just change `layer 0` to:
146148

147149
```python
148150
# layer 0

docs/getting-started.md

Lines changed: 39 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,66 @@
11
# Get started with M60 Keyboard
22

3-
M60 is a compact keyboard. It has a keymap composed of multiple layers, which is [similar to TMK Keyboard](https://github.com/tmk/tmk_keyboard/blob/master/tmk_core/doc/keymap.md). By default, No.0 layer is used:
3+
M60 is a compact keyboard. It has a keymap composed of multiple layers, [similar to TMK Keyboard](https://github.com/tmk/tmk_keyboard/blob/master/tmk_core/doc/keymap.md). By default, layer number 0 is used, which includes a normal key map:
44

55
![](https://gitee.com/makerdiary/python-keyboard/raw/resource/img/layer0.svg)
66

77
## Keymap
88

9-
As the 60% keyboard lacks a lot of keys such as F1~F12 and arrow keys, <kbd>Fn</kbd> is used to activate a new layer.
10-
When holding <kbd>Fn</kbd> down, the following keys are activated.
9+
As the 60% keyboard lacks a lot of keys such as F1~F12 and arrow keys, <kbd>Fn</kbd> is used to activate a second layer, layer number 1.
1110

12-
![](https://gitee.com/makerdiary/python-keyboard/raw/resource/img/layer1.svg)
13-
14-
+ <kbd>Fn</kbd> + <kbd>M</kbd> triggers No.0 macro
15-
+ <kbd>Fn</kbd> + <kbd>P</kbd> suspends the keyboard when only powered by battery.
16-
+ <kbd>Fn</kbd> + <kbd>B</kbd> enters its bootloader (only for upgrade)
11+
By default, holding <kbd>Fn</kbd> down activates the following functions:
1712

18-
Except <kbd>Fn</kbd>, a normal key can be used as a Tap-key, which is holding a key down to activate an alternate function.
13+
![](https://gitee.com/makerdiary/python-keyboard/raw/resource/img/layer1.svg)
1914

20-
### Using <kbd>B</kbd> to configure Bluetooth and USB
15+
- <kbd>Fn</kbd> + <kbd>M</kbd> triggers No.0 macro
16+
- <kbd>Fn</kbd> + <kbd>P</kbd> suspends the keyboard when only powered by battery.
17+
- <kbd>Fn</kbd> + <kbd>B</kbd> enters its bootloader (only for used for firmware upgrades)
2118

22-
<kbd>B</kbd> is used as a Tap-key to configure Bluetooth and USB. Taping <kbd>B</kbd> outputs `b` (press & release quickly). Holding <kbd>B</kbd> down activates another new layer. With the layer, the following functions are available:
19+
Except for <kbd>Fn</kbd>, any normal key can be used as a Tap-key. A Tap-key is a key that can be used as an ordinary key when tapped, or can be held down to activate alternate functions.
2320

24-
+ <kbd>B</kbd> + <kbd>Esc</kbd> toggles Bluetooth
25-
+ <kbd>B</kbd> + <kbd>0</kbd> ~ <kbd>9</kbd> changes Bluetooth ID to switch between multiple computers and phones
26-
+ <kbd>B</kbd> + <kbd>U</kbd> toggles USB
21+
All of the default Tap-keys, including <kbd>D</kbd>, <kbd>B</kbd>, and <kbd>;</kbd> can be [re-configured](configuration.md).
2722

2823
### Using <kbd>D</kbd> for Navigation
2924

30-
<kbd>D</kbd> is also used as a Tap key for navigation functions.
25+
<kbd>D</kbd> is the default Tap-key to activate the navigation functions. Holding it activates layer number 2, which includes navigation keys:
3126

3227
![](https://gitee.com/makerdiary/python-keyboard/raw/master/img/d-for-navigation.png)
3328

34-
+ <kbd>D</kbd> + <kbd>H</kbd> → <kbd>←</kbd>
35-
+ <kbd>D</kbd> + <kbd>J</kbd> → <kbd>↓</kbd>
36-
+ <kbd>D</kbd> + <kbd>K</kbd> → <kbd>↑</kbd>
37-
+ <kbd>D</kbd> + <kbd>L</kbd> → <kbd>→</kbd>
38-
+ <kbd>D</kbd> + <kbd>U</kbd> → <kbd>PgUp</kbd>
39-
+ <kbd>D</kbd> + <kbd>N</kbd> → <kbd>PgDn</kbd>
29+
- <kbd>D</kbd> + <kbd>H</kbd> → <kbd>←</kbd>
30+
- <kbd>D</kbd> + <kbd>J</kbd> → <kbd>↓</kbd>
31+
- <kbd>D</kbd> + <kbd>K</kbd> → <kbd>↑</kbd>
32+
- <kbd>D</kbd> + <kbd>L</kbd> → <kbd>→</kbd>
33+
- <kbd>D</kbd> + <kbd>U</kbd> → <kbd>PgUp</kbd>
34+
- <kbd>D</kbd> + <kbd>N</kbd> → <kbd>PgDn</kbd>
35+
36+
### Using <kbd>B</kbd> to Configure Bluetooth and USB
37+
38+
<kbd>B</kbd> is the default Tap-key to configure Bluetooth and USB. Tapping <kbd>B</kbd> (_i.e._, pressing & releasing it quickly) outputs `b`. Holding <kbd>B</kbd> down activates another the Bluetooth keyboard layer, layer number 3. When the Bluetooth layer is active, the following functions are available:
39+
40+
- <kbd>B</kbd> + <kbd>Esc</kbd> toggles Bluetooth
41+
- <kbd>B</kbd> + <kbd>0</kbd> ~ <kbd>9</kbd> changes Bluetooth ID to switch between multiple computers and phones
42+
- <kbd>B</kbd> + <kbd>U</kbd> toggles USB
4043

4144
### Using <kbd>;</kbd> as <kbd>Ctrl</kbd>
4245

43-
<kbd>;</kbd> is another type of Tap-key. Taping <kbd>;</kbd> outputs `;`. However, holding <kbd>;</kbd> down outputs `Ctrl` instead of activating a layer.
46+
<kbd>;</kbd> is a different type of Tap-key. Tapping <kbd>;</kbd> outputs `;`. However, holding <kbd>;</kbd> down outputs `Ctrl` instead of activating a layer.
4447

4548
![](https://github.com/xiongyihui/keyboard/raw/master/img/semicolon_as_ctrl.png)
4649

47-
+ <kbd>;</kbd> + <kbd>c</kbd> = <kbd>Ctrl</kbd> + <kbd>c</kbd>
48-
+ <kbd>;</kbd> + <kbd>v</kbd> = <kbd>Ctrl</kbd> + <kbd>v</kbd>
49-
+ <kbd>;</kbd> + <kbd>x</kbd> = <kbd>Ctrl</kbd> + <kbd>x</kbd>
50-
+ <kbd>;</kbd> + <kbd>a</kbd> = <kbd>Ctrl</kbd> + <kbd>a</kbd>
51-
50+
- <kbd>;</kbd> + <kbd>c</kbd> = <kbd>Ctrl</kbd> + <kbd>c</kbd>
51+
- <kbd>;</kbd> + <kbd>v</kbd> = <kbd>Ctrl</kbd> + <kbd>v</kbd>
52+
- <kbd>;</kbd> + <kbd>x</kbd> = <kbd>Ctrl</kbd> + <kbd>x</kbd>
53+
- <kbd>;</kbd> + <kbd>a</kbd> = <kbd>Ctrl</kbd> + <kbd>a</kbd>
5254

5355
## Using Pair-keys
5456

55-
Simultaneously pressing two keys (interval less than 10ms) activates an alternate function.
56-
By default, <kbd>J</kbd> <kbd>K</kbd> are used as a pair-keys. When simultaneously pressing <kbd>J</kbd> and <kbd>K</kbd> in a text editor, it will output a pre-defined string.
57+
Simultaneously pressing two keys (_i.e._, pressing them in an interval of less than 10ms) activates an alternate function.
5758

58-
## Setup Bluetooth
59+
Two sets of pair-keys are configured by default, to illustrate how to setup these keys. These include <kbd>J</kbd> <kbd>K</kbd> and <kbd>U</kbd> <kbd>I</kbd>. As shipped, simultaneously pressing <kbd>J</kbd> and <kbd>K</kbd> or <kbd>U</kbd> and <kbd>I</kbd> in a text editor will output a pre-defined string (_e.g._, "You just triggered pair keys #0").
5960

60-
First, we press <kbd>B</kbd> + <kbd>1</kbd> to start Bluetooth advertising, and then we will see the blue LED under <kbd>1</kbd> is in breathing mode:
61+
## How to Setup Bluetooth
62+
63+
First, press <kbd>B</kbd> + <kbd>1</kbd> to start Bluetooth advertising. You will then see the blue LED under <kbd>1</kbd> enter in "breathing" mode and flash slowly:
6164

6265
![](https://gitee.com/makerdiary/python-keyboard/raw/resource/img/ble_broadcast.gif)
6366

@@ -73,8 +76,10 @@ Choose `Bluetooth` in the `Add a device` dialog, then you will see the device `P
7376

7477
<img src="https://gitee.com/makerdiary/python-keyboard/raw/resource/img/windows-add-bluetooth-device-en.png" width="400">
7578

76-
When to connect the keyboard to a second computer, just use <kbd>B</kbd> + <kbd>2</kbd> to start connecting. From <kbd>0</kbd> to <kbd>9</kbd>, the keyboard can connect to 10 bluetooth devices.
79+
In order to connect the keyboard to a second computer, just use <kbd>B</kbd> + <kbd>2</kbd> to start connecting. From <kbd>0</kbd> to <kbd>9</kbd>, the keyboard can connect to 10 bluetooth devices.
80+
81+
## Go Further
7782

78-
## Go further
83+
We hope M60 keyboard incites ideas to make a keyboard more productive, all without having to install any third-party software or drivers on your computer.
7984

80-
We hope M60 brings you an idea to make a keyboard more productive. You may have your own thoughts of configuring a keyboard. Follow [the configuring guide](configuration.md) to find what works best for you.
85+
If you have your own thoughts on how to best configure the keyboard, just follow [the configuration guide](configuration.md) to find what works best for you.

docs/index.md

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# M60 Mechanical Keyboard
22

3-
**En** | [中文][1]
3+
**En** | [中文][1]
44

55
M60 is a hot-swappable 60% Keyboard with USB, BLE 5.0 and RGB backlight. It is highly configurable and extensible.
66
It can run Python code saved in its USB storage, which makes it super powerful. It has very low power consumption and only needs about 160uA current when connected to a computer via Bluetooth. It is one of the lowest latency USB keyboards.
@@ -9,32 +9,35 @@ It can run Python code saved in its USB storage, which makes it super powerful.
99

1010
## Features
1111

12-
- BLE 5.0 Multi-pairing up to 10 devices
13-
- Hot-swappable
14-
- USB Type-C
12+
- Bluetooth, including BLE 5.0 multi-pairing up to 10 devices
13+
- Hot-swappable key switch mounts
14+
- USB Type-C connector
1515
- Standard 60% layout (61 keys)
1616
- 6KRO
17-
- RGB backlit
17+
- RGB backlight (pending software support)
1818
- Supports Windows/macOS/Linux/iOS/Android
1919
- Low power consumption
2020
- All keys remappable
2121
- Up to 32 layers
2222
- Macros
2323
- Pair-keys
24+
- Tap-keys
2425

2526
## Specs
2627

27-
| | M60 Keyboard |
28-
|-----------------|-----------------------------------------------------------------------------------|
29-
| Core Module | nRF52840, Arm Cortex-M4F, 64MHz, 256KB RAM, 1MB FLASH, 8MB QSPI Flash, M.2 KEY-E |
30-
| Wireless | Bluetooth Low Energy 5.0, NFC |
31-
| USB | Type-C |
32-
| Layout | 60% (61 Keys) |
33-
| Hot-Swappable | Yes |
34-
| Switch Option | Cherry MX compatible Switches |
35-
| Backlight | 64 RGB LEDs, IS32FL3733 |
36-
|Battery Connector| JST 1.25mm 3-Pin |
37-
| RF Antennas | 2.4GHz Cabled PCB Antenna, NFC Cabled PCB Antenna |
38-
| Dimensions | 285 mm x 94.6 mm |
28+
| | M60 Keyboard |
29+
| ----------------- | -------------------------------------------------------------------------------- |
30+
| Core Module | nRF52840, Arm Cortex-M4F, 64MHz, 256KB RAM, 1MB FLASH, 8MB QSPI Flash, M.2 KEY-E |
31+
| Wireless | Bluetooth Low Energy 5.0, NFC |
32+
| USB | Type-C |
33+
| Layout | 60% (61 Keys) |
34+
| Hot-Swappable | Yes |
35+
| Switch Option | Cherry MX compatible Switches |
36+
| Backlight | 64 RGB LEDs, IS32FL3733 |
37+
| Battery Connector | JST 1.25mm 3-Pin |
38+
| RF Antennas | 2.4GHz Cabled PCB Antenna, NFC Cabled PCB Antenna |
39+
| Dimensions | 285 mm x 94.6 mm (compatible with DZ60 cases) |
40+
41+
**Note: The M60 PCB uses a north-facing switch orientation. If you plan to use Cherry MX or low-profile keycaps, be sure to purchase key switches that are beveled on both the north and south ends. See Issue #3.**
3942

4043
[1]: https://gitee.com/makerdiary/python-keyboard/wikis/pages

0 commit comments

Comments
 (0)