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.
master
forksand-xd87
future
future_unformatted
python_tests
qmk_clang_format
fix/oled_timeout
docs/rgb_matrix_startup
fix/print_buffer_overflow
planck_thk
vuepress
clueboard_2x1800_2019
future_ppdis_none
tweak_clang_format
enforce-clang-format
clang-format
arm-dac-work
titmlb
planck-ez-a5-high
planck_ez_wdg
planck_ez_with_5372
arm_rgb
rgb7seg
peasy
clueboard_66hs_arm
hf/docs_typo
clockworkpi
embedded
i18n
subatomic
unorthodox
touchpad
qwiic_joystiic
automate_kc_prefix
qwiic_hud
matrix_update
peb
clueboard_66hs
pragma_once
olkb-defaults
edez2
muon_light
qwiic_hub
muon_light_dc
keymap_folders
planck_light_rev2
internal/led_qa
l100
docsify_setup
fywut
keycode_versioning
readme-update
clueboard_hotswap
handwire
twi2c
arm_audio_fixes
xmega_support
audio_out
gb_port
clueboard_1
info_json_populate
pjrc_hid
subvendor_ids
stm32l476
ps2avrgb
travis_phases
dz_support
make_autocomplete
hid_api
clueboard_arm
sid
keyboards_json
keyboard_identifiers
pp_definitions
teensy_lc_synth
eeprom_update
process_keycode_update
b6_b7_audio
example_keyboards
preonic-1.0
planck-4.0
0.5.0
0.5.1
0.5.10
0.5.100
0.5.101
0.5.102
0.5.103
0.5.104
0.5.105
0.5.106
0.5.107
0.5.108
0.5.109
0.5.11
0.5.110
0.5.111
0.5.112
0.5.113
0.5.114
0.5.115
0.5.116
0.5.117
0.5.118
0.5.119
0.5.12
0.5.120
0.5.121
0.5.122
0.5.123
0.5.124
0.5.125
0.5.126
0.5.127
0.5.128
0.5.129
0.5.13
0.5.130
0.5.131
0.5.132
0.5.133
0.5.134
0.5.135
0.5.136
0.5.137
0.5.138
0.5.139
0.5.14
0.5.140
0.5.141
0.5.142
0.5.143
0.5.144
0.5.145
0.5.146
0.5.147
0.5.148
0.5.149
0.5.15
0.5.150
0.5.151
0.5.152
0.5.153
0.5.154
0.5.155
0.5.156
0.5.157
0.5.158
0.5.159
0.5.16
0.5.160
0.5.161
0.5.162
0.5.163
0.5.164
0.5.165
0.5.166
0.5.167
0.5.168
0.5.169
0.5.17
0.5.170
0.5.171
0.5.172
0.5.173
0.5.174
0.5.175
0.5.176
0.5.177
0.5.178
0.5.179
0.5.180
0.5.181
0.5.182
0.5.183
0.5.184
0.5.185
0.5.186
0.5.187
0.5.188
0.5.189
0.5.190
0.5.191
0.5.192
0.5.193
0.5.194
0.5.195
0.5.196
0.5.197
0.5.198
0.5.199
0.5.2
0.5.20
0.5.200
0.5.201
0.5.202
0.5.203
0.5.204
0.5.205
0.5.206
0.5.207
0.5.208
0.5.209
0.5.21
0.5.210
0.5.211
0.5.212
0.5.213
0.5.214
0.5.215
0.5.216
0.5.217
0.5.218
0.5.219
0.5.22
0.5.220
0.5.221
0.5.222
0.5.223
0.5.224
0.5.225
0.5.226
0.5.227
0.5.228
0.5.229
0.5.23
0.5.230
0.5.231
0.5.232
0.5.233
0.5.234
0.5.235
0.5.236
0.5.237
0.5.238
0.5.239
0.5.24
0.5.240
0.5.241
0.5.242
0.5.243
0.5.244
0.5.245
0.5.246
0.5.247
0.5.248
0.5.249
0.5.25
0.5.250
0.5.251
0.5.252
0.5.253
0.5.254
0.5.255
0.5.256
0.5.257
0.5.258
0.5.259
0.5.26
0.5.260
0.5.261
0.5.262
0.5.263
0.5.264
0.5.27
0.5.28
0.5.29
0.5.3
0.5.30
0.5.31
0.5.32
0.5.33
0.5.34
0.5.35
0.5.36
0.5.37
0.5.38
0.5.39
0.5.4
0.5.40
0.5.41
0.5.42
0.5.43
0.5.44
0.5.45
0.5.46
0.5.47
0.5.48
0.5.49
0.5.5
0.5.50
0.5.51
0.5.52
0.5.53
0.5.54
0.5.55
0.5.56
0.5.57
0.5.58
0.5.59
0.5.6
0.5.60
0.5.61
0.5.62
0.5.63
0.5.64
0.5.65
0.5.66
0.5.67
0.5.68
0.5.69
0.5.7
0.5.70
0.5.71
0.5.72
0.5.73
0.5.74
0.5.75
0.5.76
0.5.77
0.5.78
0.5.79
0.5.8
0.5.80
0.5.81
0.5.82
0.5.83
0.5.84
0.5.85
0.5.86
0.5.87
0.5.88
0.5.89
0.5.9
0.5.90
0.5.91
0.5.92
0.5.93
0.5.94
0.5.95
0.5.96
0.5.97
0.5.98
0.5.99
0.6.0
0.6.1
0.6.10
0.6.100
0.6.101
0.6.102
0.6.103
0.6.104
0.6.105
0.6.106
0.6.107
0.6.108
0.6.109
0.6.11
0.6.110
0.6.111
0.6.112
0.6.113
0.6.114
0.6.115
0.6.116
0.6.117
0.6.118
0.6.119
0.6.12
0.6.120
0.6.121
0.6.122
0.6.123
0.6.124
0.6.125
0.6.126
0.6.127
0.6.128
0.6.129
0.6.13
0.6.130
0.6.131
0.6.132
0.6.133
0.6.134
0.6.135
0.6.136
0.6.137
0.6.138
0.6.139
0.6.14
0.6.140
0.6.141
0.6.142
0.6.143
0.6.144
0.6.145
0.6.146
0.6.147
0.6.148
0.6.149
0.6.15
0.6.150
0.6.151
0.6.152
0.6.153
0.6.154
0.6.155
0.6.156
0.6.157
0.6.158
0.6.159
0.6.16
0.6.160
0.6.161
0.6.162
0.6.163
0.6.164
0.6.165
0.6.166
0.6.167
0.6.168
0.6.169
0.6.17
0.6.170
0.6.171
0.6.172
0.6.173
0.6.174
0.6.175
0.6.176
0.6.177
0.6.178
0.6.179
0.6.18
0.6.180
0.6.181
0.6.182
0.6.183
0.6.184
0.6.185
0.6.186
0.6.187
0.6.188
0.6.189
0.6.19
0.6.190
0.6.191
0.6.192
0.6.193
0.6.194
0.6.195
0.6.196
0.6.197
0.6.198
0.6.199
0.6.2
0.6.20
0.6.200
0.6.201
0.6.202
0.6.203
0.6.204
0.6.205
0.6.206
0.6.207
0.6.208
0.6.209
0.6.21
0.6.210
0.6.211
0.6.212
0.6.213
0.6.214
0.6.215
0.6.216
0.6.217
0.6.218
0.6.219
0.6.22
0.6.220
0.6.221
0.6.222
0.6.223
0.6.224
0.6.225
0.6.226
0.6.227
0.6.228
0.6.229
0.6.23
0.6.230
0.6.231
0.6.232
0.6.233
0.6.234
0.6.235
0.6.236
0.6.237
0.6.238
0.6.239
0.6.24
0.6.240
0.6.241
0.6.242
0.6.243
0.6.244
0.6.245
0.6.246
0.6.247
0.6.248
0.6.249
0.6.25
0.6.250
0.6.251
0.6.252
0.6.253
0.6.254
0.6.255
0.6.256
0.6.257
0.6.258
0.6.259
0.6.26
0.6.260
0.6.261
0.6.262
0.6.263
0.6.264
0.6.265
0.6.266
0.6.267
0.6.268
0.6.269
0.6.27
0.6.270
0.6.271
0.6.272
0.6.273
0.6.274
0.6.275
0.6.276
0.6.277
0.6.278
0.6.279
0.6.28
0.6.280
0.6.281
0.6.282
0.6.283
0.6.284
0.6.285
0.6.286
0.6.287
0.6.288
0.6.289
0.6.29
0.6.290
0.6.291
0.6.292
0.6.293
0.6.294
0.6.295
0.6.296
0.6.297
0.6.298
0.6.299
0.6.3
0.6.30
0.6.300
0.6.301
0.6.302
0.6.303
0.6.304
0.6.305
0.6.306
0.6.307
0.6.308
0.6.309
0.6.31
0.6.310
0.6.311
0.6.312
0.6.313
0.6.314
0.6.315
0.6.316
0.6.317
0.6.318
0.6.319
0.6.32
0.6.320
0.6.321
0.6.322
0.6.323
0.6.324
0.6.325
0.6.326
0.6.327
0.6.328
0.6.329
0.6.33
0.6.330
0.6.331
0.6.332
0.6.333
0.6.334
0.6.335
0.6.336
0.6.337
0.6.338
0.6.339
0.6.34
0.6.340
0.6.341
0.6.342
0.6.343
0.6.344
0.6.345
0.6.346
0.6.347
0.6.348
0.6.349
0.6.35
0.6.350
0.6.351
0.6.352
0.6.353
0.6.354
0.6.355
0.6.356
0.6.357
0.6.358
0.6.359
0.6.36
0.6.360
0.6.361
0.6.362
0.6.363
0.6.364
0.6.365
0.6.366
0.6.367
0.6.368
0.6.369
0.6.37
0.6.370
0.6.371
0.6.372
0.6.373
0.6.374
0.6.375
0.6.376
0.6.377
0.6.378
0.6.379
0.6.38
0.6.380
0.6.381
0.6.382
0.6.383
0.6.384
0.6.385
0.6.386
0.6.387
0.6.388
0.6.389
0.6.39
0.6.390
0.6.391
0.6.392
0.6.393
0.6.394
0.6.395
0.6.396
0.6.397
0.6.398
0.6.399
0.6.4
0.6.40
0.6.400
0.6.401
0.6.402
0.6.403
0.6.404
0.6.405
0.6.406
0.6.41
0.6.412
0.6.413
0.6.414
0.6.415
0.6.416
0.6.417
0.6.418
0.6.419
0.6.42
0.6.420
0.6.421
0.6.422
0.6.423
0.6.424
0.6.425
0.6.426
0.6.427
0.6.428
0.6.429
0.6.43
0.6.430
0.6.431
0.6.432
0.6.433
0.6.434
0.6.435
0.6.436
0.6.437
0.6.438
0.6.439
0.6.44
0.6.440
0.6.441
0.6.442
0.6.443
0.6.444
0.6.445
0.6.446
0.6.447
0.6.448
0.6.449
0.6.45
0.6.450
0.6.451
0.6.452
0.6.453
0.6.454
0.6.455
0.6.456
0.6.457
0.6.458
0.6.459
0.6.46
0.6.460
0.6.461
0.6.462
0.6.463
0.6.464
0.6.47
0.6.48
0.6.49
0.6.5
0.6.50
0.6.51
0.6.52
0.6.53
0.6.54
0.6.55
0.6.56
0.6.57
0.6.58
0.6.59
0.6.6
0.6.60
0.6.61
0.6.62
0.6.63
0.6.64
0.6.65
0.6.66
0.6.67
0.6.68
0.6.69
0.6.7
0.6.70
0.6.71
0.6.72
0.6.73
0.6.74
0.6.75
0.6.76
0.6.77
0.6.78
0.6.79
0.6.8
0.6.80
0.6.81
0.6.82
0.6.83
0.6.84
0.6.85
0.6.86
0.6.87
0.6.88
0.6.89
0.6.9
0.6.90
0.6.91
0.6.92
0.6.93
0.6.94
0.6.95
0.6.96
0.6.97
0.6.98
0.6.99
LUFA-111009
LUFA-130901
LUFA-130901-BETA
LUFA-140302
LUFA-140928
LUFA-151115
LUFA-170418
breakpoint_2019_08_30
ergodox_ez-161205
gh60-0.1
planck-4.1
planck-4.2
planck-5.0
planck-6.0
planck-6.1
planck-light-1.0
preonic-2.0
v4.0
${ noResults }
2.4 KiB
2.4 KiB
PS/2 to USB keyboard converter
This firmware converts PS/2 keyboard protocol to USB and supports only Scan Code Set 2.
PS/2 signal handling implementations
Following three methods are used to implement PS/2 signal handling.
Simple and stupid busy-wait(ps2_busywait.c)
This is expected to implemented with portable C code for reference.
Interrupt driven(ps2_interrupt.c)
Uses pin interrupt to detect falling edge of clock line.
USART hardware module(ps2_usart.c)
Uses AVR USART engine to receive PS/2 signal.
To select method edit Makefile.
Connect Wires
In case of Teensy2.0(ATMega32U4):
- Connect Vcc and GND.
- Connect Clock and Data line.
- Busywait: Clock is on PD5 and Data on PD2.
- Interrupt: Clock is on PD1 and Data on PD2.
- USART: Clock is on PD5 and Data on PD2.
- Optionally you need pull-up register. 1K-10K Ohm is OK.
To change pin configuration edit config.h.
Build Firmware
Just run make
:
$ make
To select keymap:
$ make KEYMAP=[plain|jis|spacefn|...]
Keymap
Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named keymap_<name>.c
and see keymap document(you can find in top README.md) and existent keymap files.
V-USB Support
You can also use this converter on ATmega(168/328) with V-USB instead of Teensy. The converter on V-USB lacks some features for now: USB NKRO and System/Media control.
Circuit:
+---+ +---------------+
USB GND | | ATmega168 |
=== C3 | |
5V <-------+--------+---|Vcc,AVCC | PS/2
R1 | | ====
D- <----+--+-----R2-----|INT1 RXD|------->DATA
D+ <----|---+----R3-----|INT0 XCK|------->CLOCK
Z1 Z2 | | ->5V
GND<----+---+--+--+-----|GND | ->GND
| | | |
| C2-+--|XTAL1 |
| X1 | |
+--C3-+--|XTAL2 |
+---------------+
R1: 1.5K Ohm
R2,R3: 68 Ohm
Z1,Z2: Zenner 3.6V
C1,C2: 22pF
C3: 0.1uF
X1: Crystal 20MHz(16MHz/12MHz)