summaryrefslogtreecommitdiff
path: root/README.md
blob: 1a1e20b3889fd552361ec983c5ee26ba8095fc60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# PouetPouet

The firmware is [Keyberon](https://github.com/TeXitoi/keyberon), a
pure rust firmware.

## Features

 * 60 keys, using Cherry MX switches, only 1U keycaps;
 * USB-C connector;
 * 1 STM32F072 MCU, with hardware USB DFU bootloader;
 * Only onboard SMD component (except for the switches).

## Inspiration

 * [Keyseebee](https://github.com/TeXitoi/keyseebee) for being the «I will change it quickly and have something ready in an hour» base project (even if I ended up redoing most of the hardware design).
 * [Steamvan](https://github.com/jmdaly/steamvan) for some KiCad design ideas;
 * [help-14](https://github.com/help-14/mechanical-keyboard) for making a nice list of existing keyboard;
 * [Masterzen](http://www.masterzen.fr/2020/05/03/designing-a-keyboard-part-1/) and many others for writing online tutorials for newbies like me.

## Usefull resources
 * [Mechanical Keyboard](https://github.com/help-14/mechanical-keyboard) is a list of DIY keyboards
 * [Awesome Mechanical Keyboard](https://github.com/BenRoe/awesome-mechanical-keyboard) is another [https://github.com/topics/awesome](«awesome») list

## Bill Of Materials

|Item                                                                      |Package|Qty|Remarks                                |Price |
|--------------------------------------------------------------------------|-------|--:|---------------------------------------|-----:|
| PCB                                                                      |       | 3 | aisler                                |      |
| 100 nF                                                                   | 0805  | 5 | magic match aisler                    | 0    |
| PRTR5V0U2X,215                                                           | sot-143| 1 |                                      | 0.43 |
| 4.7 uF                                                                   | 0805  | 2 |                                       | 0    |
| 470 Ohm                                                                  | 0805  | 1 | magic match aisler                    | 0    |
| TLV70233DBVR                                                             | sot-23| 1 | magic match aisler                    | 0.37 |
| 74LVC1G34GW,125                                                          |       | 1 | magic match aisler                    | 0.28 |
| 0805L050WR (500mA Polyfuse)                                              | 0805  | 1 | magic match aisler                    | 1.91 |
| RS282G05A3SMRT (micro switch)                                            |       | 2 | magic match aisler                    | 1.26 |
| 100nF                                                                    | 0805  | 2 | magic match aisler                    | 0 |
| 5.1 kOhm                                                                 | 0805  | 3 | magic match aisler                    | 0 |
| 0805L050WR (500mA Polyfuse)                                              | 0805  | 1 | magic match aisler                    | 0 |
| 1N4148WS-7-F                                                             | sod-323 | 60|                                     |   |
| WS2812B                                                                  |       | 10|                                       |   |
| USB TypeC HRO Receptacle                                                 |       | 1 |                                       |   |
| Gateron Switch                                                           |       | 60|                                       |   |
| Keycaps                                                                  |       | 60|                                       |   |

## Compiling and flashing

Install the complete toolchain and utils:

```shell
curl https://sh.rustup.rs -sSf | sh
rustup target add thumbv6m-none-eabi
rustup component add llvm-tools-preview
cargo install cargo-binutils
sudo apt-get install dfu-util
```

Compile:

```shell
cd firmware
cargo objcopy --bin pouetpouet --release -- -O binary pouetpouet.bin
```

To flash using dfu-util, first put the board in dfu mode by pressing
BOOT, pressing and releasing RESET and releasing BOOT. Then:

```shell
dfu-util -d 0483:df11 -a 0 -s 0x08000000:leave -D pouetpouet.bin
```

The fist time, if the write fail, your flash might be protected. To
unprotect:

```shell
dfu-util -d 0483:df11 -a 0 -s 0x08000000:force:unprotect -D pouetpouet.bin
```