Keyboard firmwares for Atmel AVR and Cortex-M
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tmk e2077cad45 Change key_t to keypos_t 9 years ago
..
Makefile.lufa Move Phantom keymaps to separate header files. 11 years ago
Makefile.pjrc Move Phantom keymaps to separate header files. 11 years ago
README.md Spellchecking keyboard README files. 10 years ago
config.h Fix Phantom sleep LED. 11 years ago
keymap.c Change key_t to keypos_t 9 years ago
keymap_7bit.h Move Phantom keymaps to separate header files. 11 years ago
keymap_ansi.h Move Phantom keymaps to separate header files. 11 years ago
keymap_ansi_150.h Move Phantom keymaps to separate header files. 11 years ago
keymap_iso.h Move Phantom keymaps to separate header files. 11 years ago
keymap_iso_150.h Move Phantom keymaps to separate header files. 11 years ago
led.c Fix Phantom scroll lock LED. 10 years ago
matrix.c Fix Phantom sleep LED. 11 years ago

README.md

Phantom keyboard firmware

DIY keyboard developed by Geekhack and Deskthority communities. The PCB was engineered by bpiphany from the original idea of HaveANiceDay.

Wiki on Deskthority.net

Build

Move to this directory then just run make like:

$ make -f Makefile.[pjrc|lufa] [ansi|ansi_150|iso|iso_150|7bit]

Use Makefile.pjrc if you want to use PJRC stack or use Makefile.lufa for LUFA stack.

LEDs

It is possible to configure the LEDs in 2 different ways.

1. LED Brightness

The brightness of the LEDs can be controlled by software.

To select brightness edit config.h and set LED_BRIGHTNESS to a value between 0 and 255:

#define LED_BRIGHTNESS  250

2. Sleep LED

It is possible to have the LEDs fade in and out when the computer is suspended.

To enable this feature, uncomment the SLEEP_LED_ENABLE line in the makefile you are using:

SLEEP_LED_ENABLE = yes  # Breathing sleep LED during USB suspend

Note that this will set the LEDs to full brightness as this feature can’t be combined with the brightness control.

Keymap

The PCB supports multiple physical layouts. Each layout have their own keymap file.

Note that only the ANSI keymap is tested on actual hardware.

To customize a keymap:

  1. Edit the file that corresponds to your layout.
  2. Specify your layout when building.

See keymap.c to define your own custom layout.

1. ANSI

This is the default keymap.

See keymap_ansi.h for detail.

1.0. ANSI Default Layer

 ,---.   ,---------------. ,---------------. ,---------------. ,-----------.
 |Esc|   |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
 `---'   `---------------' `---------------' `---------------' `-----------'
 ,-----------------------------------------------------------. ,-----------.
 |~  |  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|Backsp | |Ins|Hom|PgU|
 |-----------------------------------------------------------| |-----------|
 |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|    \| |Del|End|PgD|
 |-----------------------------------------------------------| '-----------'
 |Fn0   |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|Return  |
 |-----------------------------------------------------------|     ,---.
 |Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift     |     |Up |
 |-----------------------------------------------------------| ,-----------.
 |Ctl|Gui|Alt|             Space             |Alt|Gui|App|Ctl| |Lef|Dow|Rig|
 `-----------------------------------------------------------' `-----------'

1.1. ANSI Media Layer

 ,---.   ,---------------. ,---------------. ,---------------. ,-----------.
 |   |   |   |   |   |   | |   |   |   |   | |   |   |   |   | |   |   |Slp|
 `---'   `---------------' `---------------' `---------------' `-----------'
 ,-----------------------------------------------------------. ,-----------.
 |   |   |   |   |   |   |   |   |   |   |Mut|V- |V+ |       | |   |   |   |
 |-----------------------------------------------------------| |-----------|
 |     |   |   |   |   |   |   |   |   |Stp|Ply|Prv|Nxt|Media| |   |   |   |
 |-----------------------------------------------------------| '-----------'
 |      |   |   |   |   |   |   |   |   |   |   |   |        |
 |-----------------------------------------------------------|     ,---.
 |        |   |   |Clc|   |   |   |   |   |   |   |Caps      |     |   |
 |-----------------------------------------------------------| ,-----------.
 |   |   |   |                               |   |   |   |   | |   |   |   |
 `-----------------------------------------------------------' `-----------'

2. ANSI 150

Layout with 1.5 unit modifiers.

See keymap_ansi_150.h for detail.

2.0. ANSI 150 Default Layer

 ,---.   ,---------------. ,---------------. ,---------------. ,-----------.
 |Esc|   |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
 `---'   `---------------' `---------------' `---------------' `-----------'
 ,-----------------------------------------------------------. ,-----------.
 |~  |  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|Backsp | |Ins|Hom|PgU|
 |-----------------------------------------------------------| |-----------|
 |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|    \| |Del|End|PgD|
 |-----------------------------------------------------------| '-----------'
 |Fn0   |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|Return  |
 |-----------------------------------------------------------|     ,---.
 |Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift     |     |Up |
 |-----------------------------------------------------------| ,-----------.
 |Ctl |Gui|Alt |             Space             |Alt |Gui|Ctl | |Lef|Dow|Rig|
 `-----------------------------------------------------------' `-----------'

2.1. ANSI 150 Media Layer

 ,---.   ,---------------. ,---------------. ,---------------. ,-----------.
 |   |   |   |   |   |   | |   |   |   |   | |   |   |   |   | |   |   |Slp|
 `---'   `---------------' `---------------' `---------------' `-----------'
 ,-----------------------------------------------------------. ,-----------.
 |   |   |   |   |   |   |   |   |   |   |Mut|V- |V+ |       | |   |   |   |
 |-----------------------------------------------------------| |-----------|
 |     |   |   |   |   |   |   |   |   |Stp|Ply|Prv|Nxt|Media| |   |   |   |
 |-----------------------------------------------------------| '-----------'
 |      |   |   |   |   |   |   |   |   |   |   |   |        |
 |-----------------------------------------------------------|     ,---.
 |        |   |   |Clc|   |   |   |   |   |   |   |Caps      |     |   |
 |-----------------------------------------------------------| ,-----------.
 |    |   |    |                               |    |   |    | |   |   |   |
 `-----------------------------------------------------------' `-----------'

3. ISO

ISO layout.

See keymap_iso.h for detail.

3.0. ISO Default Layer

 ,---.   ,---------------. ,---------------. ,---------------. ,-----------.
 |Esc|   |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
 `---'   `---------------' `---------------' `---------------' `-----------'
 ,-----------------------------------------------------------. ,-----------.
 |~  |  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|Backsp | |Ins|Hom|PgU|
 |-----------------------------------------------------------| |-----------|
 |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|     | |Del|End|PgD|
 |------------------------------------------------------` Ret| '-----------'
 |Fn0   |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|  #|    |
 |-----------------------------------------------------------|     ,---.
 |Shif|  \|  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift     |     |Up |
 |-----------------------------------------------------------| ,-----------.
 |Ctl|Gui|Alt|             Space             |Alt|Gui|App|Ctl| |Lef|Dow|Rig|
 `-----------------------------------------------------------' `-----------'

3.1. ISO Media Layer

 ,---.   ,---------------. ,---------------. ,---------------. ,-----------.
 |   |   |   |   |   |   | |   |   |   |   | |   |   |   |   | |   |   |Slp|
 `---'   `---------------' `---------------' `---------------' `-----------'
 ,-----------------------------------------------------------. ,-----------.
 |   |   |   |   |   |   |   |   |   |   |Mut|V- |V+ |       | |   |   |   |
 |-----------------------------------------------------------| |-----------|
 |     |   |   |   |   |   |   |   |   |Stp|Ply|Prv|Nxt|     | |   |   |   |
 |------------------------------------------------------` Med| '-----------'
 |      |   |   |   |   |   |   |   |   |   |   |   |   |    |
 |-----------------------------------------------------------|     ,---.
 |    |   |   |   |Clc|   |   |   |   |   |   |   |Caps      |     |   |
 |-----------------------------------------------------------| ,-----------.
 |   |   |   |                               |   |   |   |   | |   |   |   |
 `-----------------------------------------------------------' `-----------'

4. ISO 150

ISO layout with 1.5 unit modifiers.

See keymap_iso_150.h for detail.

4.0. ISO 150 Default Layer

 ,---.   ,---------------. ,---------------. ,---------------. ,-----------.
 |Esc|   |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
 `---'   `---------------' `---------------' `---------------' `-----------'
 ,-----------------------------------------------------------. ,-----------.
 |~  |  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|Backsp | |Ins|Hom|PgU|
 |-----------------------------------------------------------| |-----------|
 |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|     | |Del|End|PgD|
 |------------------------------------------------------` Ret| '-----------'
 |Fn0   |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|  #|    |
 |-----------------------------------------------------------|     ,---.
 |Shif|  \|  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift     |     |Up |
 |-----------------------------------------------------------| ,-----------.
 |Ctl |Gui|Alt |             Space             |Alt |Gui|Ctl | |Lef|Dow|Rig|
 `-----------------------------------------------------------' `-----------'

4.1. ISO 150 Media Layer

 ,---.   ,---------------. ,---------------. ,---------------. ,-----------.
 |   |   |   |   |   |   | |   |   |   |   | |   |   |   |   | |   |   |Slp|
 `---'   `---------------' `---------------' `---------------' `-----------'
 ,-----------------------------------------------------------. ,-----------.
 |   |   |   |   |   |   |   |   |   |   |Mut|V- |V+ |       | |   |   |   |
 |-----------------------------------------------------------| |-----------|
 |     |   |   |   |   |   |   |   |   |Stp|Ply|Prv|Nxt|     | |   |   |   |
 |------------------------------------------------------` Med| '-----------'
 |      |   |   |   |   |   |   |   |   |   |   |   |   |    |
 |-----------------------------------------------------------|     ,---.
 |    |   |   |   |Clc|   |   |   |   |   |   |   |Caps      |     |   |
 |-----------------------------------------------------------| ,-----------.
 |    |   |    |                               |    |   |    | |   |   |   |
 `-----------------------------------------------------------' `-----------'

5. 7bit

Layout using all the available keys on the PCB.

This keymap is only provided as an example of what can be done using this layout. No real thought has been put into this keymap.

See keymap_7bit.h for detail.

5.0. 7bit Default Layer

 ,-----------------------------------------------------------. ,-----------.
 |Esc|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|V- |V+ | |PrS|ScL|Pau|
 `-----------------------------------------------------------' `-----------'
 ,-----------------------------------------------------------. ,-----------.
 |~  |  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|  (|  )| |Ins|Hom|PgU|
 |-----------------------------------------------------------| |-----------|
 |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|Backs| |Del|End|PgD|
 |-----------------------------------------------------------| |-----------|
 |Fn0   |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|  \| Ret| |Stp|Ply|Med|
 |-----------------------------------------------------------| |-----------|
 |Cap|Shif|  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift |Cap| |Prv|Up |Nxt|
 |-----------------------------------------------------------| |-----------|
 |Ctrl |Gui|Alt  |Spc  |Bspc |Del|Ret  |Alt  |Gui  |App|Ctrl | |Lef|Dow|Rig|
 `-----------------------------------------------------------' `-----------'

5.1. 7bit Media Layer

 ,-----------------------------------------------------------. ,-----------.
 |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   | |   |   |Slp|
 `-----------------------------------------------------------' `-----------'
 ,-----------------------------------------------------------. ,-----------.
 |   |   |   |   |   |   |   |   |   |   |Mut|V- |V+ |   |   | |   |   |   |
 |-----------------------------------------------------------| |-----------|
 |     |   |   |   |   |   |   |   |   |Stp|Ply|Prv|Nxt|Media| |   |   |   |
 |-----------------------------------------------------------| |-----------|
 |      |   |   |   |   |   |   |   |   |   |   |   |   |    | |   |   |   |
 |-----------------------------------------------------------| |-----------|
 |   |    |   |   |   |   |   |   |   |   |   |   |      |   | |   |   |   |
 |-----------------------------------------------------------| |-----------|
 |     |   |     |     |     |   |     |     |     |   |     | |   |   |   |
 `-----------------------------------------------------------' `-----------'