summaryrefslogtreecommitdiff
path: root/keyboards/handwired/splittest/bluepill/readme.md
blob: 381aa6ba3ae942e8ac2f134b107f8c5958cd8e7e (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
# bluepill splittest

This is the splittest example for the bluepill MCU.
To trigger keypress, short together pins _B10_ and _B1_.

## Keyboard Configuration

The type of communication (bitbang, serial (half/full duplex)) is set by the keymap `config.h` file with variables with `SPLIT_` prefix.
So this example uses:

-   `config.h` to set which SDI to use for serial. Either define `USE_SDI1_ON_STANDARD_ROLE_PINS`, `USE_SDI1_ON_ALTERNATE_ROLE_PINS` or `USE_SDI2` before the `#ifdef` that configures the default case when none of these variable is defined.
-   `post_config.h` for defining the communication pins between the halves once the keymap is configured.

On your keyboard, you most likely will only use `config.h` because you'd have already chosen your communication scheme: serial type, SDI, pins.

## Wiring

### Switches

-   Add switches to both Bluepills across B10 and B1 pins

### Handedness

Have a look at the [handedness documentation](https://docs.qmk.fm/#/feature_split_keyboard?id=setting-handedness)

-   Add pull-up resistor to left side between VCC and A7
-   Add pull-down resistors to right side between GND and A7

### Send power to the other half

-   Connect the following pins on both sides together: GND, VCC

### Halves data connection

Choose one of the connection type

#### serial - bitbang

-   Connect the B8 pins on both sides together

#### serial - usart half duplex

Check the [documentation](https://docs.qmk.fm/#/serial_driver?id=usart-half-duplex) to determine the pull-up resistor.

-   To use the default usart (USART1) with the standard role pins,
    -   Connect the A9 pins on both sides together and to add a pull-up resistor on one of these pins
    -   Define USE_SDI1_ON_STANDARD_ROLE_PINS in config.h
-   To use the default usart (USART1) with the alternate role pins,
    -   Connect the B6 pins on both sides together and to add a pull-up resistor on one of these pins
    -   Define USE_SDI1_ON_ALTERNATE_ROLE_PINS in config.h
-   To use the usart2 (USART2) pins,
    -   Connect the A2 pins on both sides together and to add a pull-up resistor on one of these pins
    -   Define USE_SDI2 in config.h

#### serial - usart full duplex

-   To use the default usart (USART1) with the standard role pins,
    -   Connect the mpins on A9, A10 one to the other on each side
    -   Define USE_SDI1_ON_STANDARD_ROLE_PINS in config.h
-   To use the default usart (USART1) with the alternate role pins,
    -   Connect the pins B6, B7 one to the other on each side
    -   Define USE_SDI1_ON_ALTERNATE_ROLE_PINS in config.h
-   To use the usart2 (USART2) pins,
    -   Connect the pins A2, A3 one to the other on each side
    -   Define USE_SDI2 in config.h