# Cradio

Cradio is a firmware for a few 34 key keyboards, including Cradio, Hypergolic and Sweep.

## Pin arrangement

Some revisions of the aforementioned PCBs have slightly different pin arrangements compared to what's defined in [`cradio.dtsi`](./cradio.dtsi). If you need to swap a few keys for your particular PCB, you can easily reorder the `input-gpio` definition in your own keymap file (i.e. in `zmk-config/config/cradio.keymap`):

```dts
/* Adjusted Cradio pin arrangement */
/* The position of Q and B keys have been swapped */
&kscan0 {
    input-gpios
    = <&pro_micro  6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
    , <&pro_micro 18 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
    , <&pro_micro 19 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
    , <&pro_micro 20 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
    , <&pro_micro 21 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
    , <&pro_micro 15 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
    , <&pro_micro 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
    , <&pro_micro 16 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
    , <&pro_micro 10 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
    , <&pro_micro  1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
    , <&pro_micro  2 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
    , <&pro_micro  3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
    , <&pro_micro  4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
    , <&pro_micro  5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
    , <&pro_micro  7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
    , <&pro_micro  8 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
    , <&pro_micro  9 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
    ;
};
```

This `&kscan0` block must be placed outside of any blocks surrounded by curly braces (`{...}`).
