You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/CONTRIBUTING.md
+4-4Lines changed: 4 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -5,14 +5,14 @@ you do, please read the following guidelines.
5
5
6
6
## Got a question or problem?
7
7
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).
9
9
10
10
## Found a bug?
11
11
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.
13
13
14
14
## Requesting a tutorial
15
15
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!
17
17
18
-
<ahref="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"><buttondata-md-color-primary="red-bud"style="width: auto;"><iclass="fa fa-github"></i>Request a tutoial</button></a>
18
+
<ahref="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"><buttondata-md-color-primary="red-bud"style="width: auto;"><iclass="fa fa-github"></i>Request a tutorial</button></a>
**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°.**
Copy file name to clipboardExpand all lines: docs/configuration.md
+11-9Lines changed: 11 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -1,11 +1,11 @@
1
1
# Keyboard Configuration
2
2
3
3
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.
An up-to-date `code.py` is included in this repository. Example content for`code.py`could be:
9
9
10
10
```python
11
11
@@ -95,13 +95,15 @@ keyboard.run()
95
95
96
96
```
97
97
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.
99
99
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.**
101
101
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
103
103
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`:
105
107
106
108
```python
107
109
# layer 0
@@ -114,7 +116,7 @@ If you know how Python works, configuring the keyboard would be very easy. If no
114
116
),
115
117
```
116
118
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:
118
120
119
121
```python
120
122
# layer 0
@@ -127,7 +129,7 @@ If you know how Python works, configuring the keyboard would be very easy. If no
127
129
),
128
130
```
129
131
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`:
131
133
132
134
```python
133
135
# layer 1
@@ -142,7 +144,7 @@ If you know how Python works, configuring the keyboard would be very easy. If no
142
144
143
145
To define the function of the macro, please follow [the macro guide](macro.md)
144
146
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:
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:
- <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)
21
18
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.
23
20
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).
27
22
28
23
### Using <kbd>D</kbd> for Navigation
29
24
30
-
<kbd>D</kbd> is also used as a Tapkey 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:
### 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
40
43
41
44
### Using <kbd>;</kbd> as <kbd>Ctrl</kbd>
42
45
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.
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.
57
58
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").
59
60
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:
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
77
82
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.
79
84
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.
M60 is a hot-swappable 60% Keyboard with USB, BLE 5.0 and RGB backlight. It is highly configurable and extensible.
6
6
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.
9
9
10
10
## Features
11
11
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
| 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.**
0 commit comments