aboutsummaryrefslogtreecommitdiff
path: root/readme.md
diff options
context:
space:
mode:
authorOfer Plesser <plesserofer@gmail.com>2016-12-03 13:11:37 +0200
committerOfer Plesser <plesserofer@gmail.com>2016-12-03 13:11:37 +0200
commit8e2732edf3c457d98dd4526d88dad26786cb3db9 (patch)
tree70e8fa92d7dda8dd2c253983c844ea4ee709ae3b /readme.md
parent9f41544e1de12b92bdc15538ec7a9e66a4af0c43 (diff)
downloadqmk_firmware-8e2732edf3c457d98dd4526d88dad26786cb3db9.tar.gz
qmk_firmware-8e2732edf3c457d98dd4526d88dad26786cb3db9.zip
Updated ps2 mouse documentation in readme
Diffstat (limited to 'readme.md')
-rw-r--r--readme.md112
1 files changed, 111 insertions, 1 deletions
diff --git a/readme.md b/readme.md
index be1510832..1f06fe79f 100644
--- a/readme.md
+++ b/readme.md
@@ -1191,7 +1191,7 @@ Please note the USB port can only supply a limited amount of power to the keyboa
1191 1191
1192Its possible to hook up a PS/2 mouse (for example touchpads or trackpoints) to your keyboard as a composite device. 1192Its possible to hook up a PS/2 mouse (for example touchpads or trackpoints) to your keyboard as a composite device.
1193 1193
1194Then, decide whether to use USART (best), interrupts (better) or busywait (not recommended), and enable the relevant option. 1194There are three available modes for hooking up PS/2 devices: USART (best), interrupts (better) or busywait (not recommended).
1195 1195
1196### Busywait version 1196### Busywait version
1197 1197
@@ -1316,6 +1316,116 @@ In your keyboard config.h:
1316#endif 1316#endif
1317``` 1317```
1318 1318
1319### Additional Settings
1320
1321#### PS/2 mouse features
1322
1323These enable settings supported by the PS/2 mouse protocol: http://www.computer-engineering.org/ps2mouse/
1324
1325```
1326/* Use remote mode instead of the default stream mode (see link) */
1327#define PS2_MOUSE_USE_REMOTE_MODE
1328
1329/* Enable the scrollwheel or scroll gesture on your mouse or touchpad */
1330#define PS2_MOUSE_ENABLE_SCROLLING
1331
1332/* Some mice will need a scroll mask to be configured. The default is 0xFF. */
1333#define PS2_MOUSE_SCROLL_MASK 0x0F
1334
1335/* Applies a transformation to the movement before sending to the host (see link) */
1336#define PS2_MOUSE_USE_2_1_SCALING
1337
1338/* The time to wait after initializing the ps2 host */
1339#define PS2_MOUSE_INIT_DELAY 1000 /* Default */
1340```
1341
1342You can also call the following functions from ps2_mouse.h
1343
1344```
1345void ps2_mouse_disable_data_reporting(void);
1346
1347void ps2_mouse_enable_data_reporting(void);
1348
1349void ps2_mouse_set_remote_mode(void);
1350
1351void ps2_mouse_set_stream_mode(void);
1352
1353void ps2_mouse_set_scaling_2_1(void);
1354
1355void ps2_mouse_set_scaling_1_1(void);
1356
1357void ps2_mouse_set_resolution(ps2_mouse_resolution_t resolution);
1358
1359void ps2_mouse_set_sample_rate(ps2_mouse_sample_rate_t sample_rate);
1360```
1361
1362#### Fine control
1363
1364Use the following defines to change the sensitivity and speed of the mouse.
1365Note: you can also use `ps2_mouse_set_resolution` for the same effect (not supported on most touchpads).
1366
1367```
1368#define PS2_MOUSE_X_MULTIPLIER 3
1369#define PS2_MOUSE_Y_MULTIPLIER 3
1370#define PS2_MOUSE_V_MULTIPLIER 1
1371```
1372
1373#### Scroll button
1374
1375If you're using a trackpoint, you will likely want to be able to use it for scrolling.
1376Its possible to enable a "scroll button/s" that when pressed will cause the mouse to scroll instead of moving.
1377To enable the feature, you must set a scroll button mask as follows:
1378
1379```
1380#define PS2_MOUSE_SCROLL_BTN_MASK (1<<PS2_MOUSE_BUTTON_MIDDLE) /* Default */
1381```
1382
1383To disable the scroll button feature:
1384
1385```
1386#define PS2_MOUSE_SCROLL_BTN_MASK 0
1387```
1388
1389The available buttons are:
1390
1391```
1392#define PS2_MOUSE_BTN_LEFT 0
1393#define PS2_MOUSE_BTN_RIGHT 1
1394#define PS2_MOUSE_BTN_MIDDLE 2
1395```
1396
1397You can also combine buttons in the mask by `|`ing them together.
1398
1399Once you've configured your scroll button mask, you must configure the scroll button send interval.
1400This is the interval before which if the scroll buttons were released they would be sent to the host.
1401After this interval, they will cause the mouse to scroll and will not be sent.
1402
1403```
1404#define PS2_MOUSE_SCROLL_BTN_SEND 300 /* Default */
1405```
1406
1407To disable sending the scroll buttons:
1408```
1409#define PS2_MOUSE_SCROLL_BTN_SEND 0
1410```
1411
1412Fine control over the scrolling is supported with the following defines:
1413
1414```
1415#define PS2_MOUSE_SCROLL_DIVISOR_H 2
1416#define PS2_MOUSE_SCROLL_DIVISOR_V 2
1417```
1418
1419#### Debug settings
1420
1421To debug the mouse, add `debug_mouse = true` or enable via bootmagic.
1422
1423```
1424/* To debug the mouse reports */
1425#define PS2_MOUSE_DEBUG_HID
1426#define PS2_MOUSE_DEBUG_RAW
1427```
1428
1319## Safety Considerations 1429## Safety Considerations
1320 1430
1321You probably don't want to "brick" your keyboard, making it impossible 1431You probably don't want to "brick" your keyboard, making it impossible