Skip to content

Commit efacb13

Browse files
committed
Documenting how to make it
1 parent 3d98bba commit efacb13

File tree

3 files changed

+34
-7
lines changed

3 files changed

+34
-7
lines changed

README.md

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,48 @@
11
# Pico Macro keyboard (CircuitPython)
2+
An easily reconfigurable macro keyboard that can press button combinations, like <kbd>ALT</kbd>+<kbd>Tab</kbd>. Suitable for using for shortcuts in a program, or for activating Auto-hotkey scripts.
3+
4+
Built with the Raspberry Pi Pico and CircuitPython.
5+
6+
![The finished macro keyboard](./doc/finished.png)
7+
8+
# Hardware
9+
* A Raspberry Pi Pico
10+
* Some keyboard switches (I used *Durock T1 67g Tactile*).
11+
* Key caps for the switches (I used *Tai-hao rubber keycaps*).
12+
* An enclosure (if you have access to a 3D printer - this design worked for me: [`novaspirit#4812223@thingiverse.com`](https://www.thingiverse.com/thing:4812223), when I printed the lid with a skirt for adhesion, which suppressed deformations)
13+
14+
## Assembly
15+
See the [fritzing schematics](./doc/fritzing) on how to assemble the keyboard (very simple).
16+
17+
# Software
18+
The microcontroller was programmed with CircuitPython 7.0.0-rc.1.
219

320
## Installation
421

5-
### Install CircuitPython 7+ on the Pico
22+
### Flashing CircuitPython 7+ on the Pico
623
* Download it from here: https://circuitpython.org/board/raspberry_pi_pico/
724
* Hold the BOOTSEL button while plugging in the Pico.
825
* Drop the CircuitPython.uf2 file in the Pico's CIRCUITPYTHON drive.
926

10-
### Upload the code to the Pico
11-
* Clone submodules etc.:
12-
```bash
27+
### Uploading the user code to the Pico
28+
* Initialize the code in this repository (clone submodules etc.):
29+
```console
1330
$ ./install.sh
1431
Cloning external submodules/libs
1532
Copying external libs into pico libs folder
1633
```
17-
* Copy all files from the [pico](./pico) folder to your CircuitPython drive. And voilà!
34+
* Copy all files from the [pico](./pico) folder to your CircuitPython drive.
35+
* Unplug the Pico from the USB port, and plug it in again. Voilà!
1836

19-
## Usage
20-
* Add mappings to config.json for the pins to key combinations
37+
# Usage
38+
* Add mappings to config.json for the pins to key combinations. The file shall contain an array. Each element is an array of strings. Each string is the name of a key to press. The entry shall be null to leave the key unconfigured. E.g.
39+
```json
40+
[
41+
["A"], // Key 1 presses a (note that it is just the key, not the upper case character)
42+
null, // Key 2 does not press any key combination
43+
["ALT", "Tab"], // Key 3 pressed ALT+Tab
44+
// The rest of the keys are not configured
45+
]
46+
```
2147
* Hold down GP0 upon boot to enable only-keyboard mode
48+
* If any key is held down during boot, then the program will exit (as a kill-switch in case there is a short)

doc/finished.png

415 KB
Loading

doc/inside-enclosure.png

388 KB
Loading

0 commit comments

Comments
 (0)