Updated ps2 mouse documentation in readme
This commit is contained in:
		
							parent
							
								
									9f41544e1d
								
							
						
					
					
						commit
						8e2732edf3
					
				
					 1 changed files with 111 additions and 1 deletions
				
			
		
							
								
								
									
										112
									
								
								readme.md
									
										
									
									
									
								
							
							
						
						
									
										112
									
								
								readme.md
									
										
									
									
									
								
							| 
						 | 
					@ -1191,7 +1191,7 @@ Please note the USB port can only supply a limited amount of power to the keyboa
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Its possible to hook up a PS/2 mouse (for example touchpads or trackpoints) to your keyboard as a composite device.
 | 
					Its possible to hook up a PS/2 mouse (for example touchpads or trackpoints) to your keyboard as a composite device.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Then, decide whether to use USART (best), interrupts (better) or busywait (not recommended), and enable the relevant option.
 | 
					There are three available modes for hooking up PS/2 devices: USART (best), interrupts (better) or busywait (not recommended).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Busywait version
 | 
					### Busywait version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1316,6 +1316,116 @@ In your keyboard config.h:
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Additional Settings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### PS/2 mouse features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					These enable settings supported by the PS/2 mouse protocol: http://www.computer-engineering.org/ps2mouse/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					/* Use remote mode instead of the default stream mode (see link) */
 | 
				
			||||||
 | 
					#define PS2_MOUSE_USE_REMOTE_MODE  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Enable the scrollwheel or scroll gesture on your mouse or touchpad */
 | 
				
			||||||
 | 
					#define PS2_MOUSE_ENABLE_SCROLLING
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Some mice will need a scroll mask to be configured. The default is 0xFF. */
 | 
				
			||||||
 | 
					#define PS2_MOUSE_SCROLL_MASK 0x0F
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Applies a transformation to the movement before sending to the host (see link) */
 | 
				
			||||||
 | 
					#define PS2_MOUSE_USE_2_1_SCALING
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The time to wait after initializing the ps2 host */
 | 
				
			||||||
 | 
					#define PS2_MOUSE_INIT_DELAY 1000 /* Default */
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can also call the following functions from ps2_mouse.h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					void ps2_mouse_disable_data_reporting(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ps2_mouse_enable_data_reporting(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ps2_mouse_set_remote_mode(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ps2_mouse_set_stream_mode(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ps2_mouse_set_scaling_2_1(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ps2_mouse_set_scaling_1_1(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ps2_mouse_set_resolution(ps2_mouse_resolution_t resolution);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ps2_mouse_set_sample_rate(ps2_mouse_sample_rate_t sample_rate);
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Fine control
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Use the following defines to change the sensitivity and speed of the mouse.
 | 
				
			||||||
 | 
					Note: you can also use `ps2_mouse_set_resolution` for the same effect (not supported on most touchpads).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					#define PS2_MOUSE_X_MULTIPLIER 3
 | 
				
			||||||
 | 
					#define PS2_MOUSE_Y_MULTIPLIER 3
 | 
				
			||||||
 | 
					#define PS2_MOUSE_V_MULTIPLIER 1
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Scroll button
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If you're using a trackpoint, you will likely want to be able to use it for scrolling.
 | 
				
			||||||
 | 
					Its possible to enable a "scroll button/s" that when pressed will cause the mouse to scroll instead of moving.
 | 
				
			||||||
 | 
					To enable the feature, you must set a scroll button mask as follows:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					#define PS2_MOUSE_SCROLL_BTN_MASK (1<<PS2_MOUSE_BUTTON_MIDDLE) /* Default */
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To disable the scroll button feature:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					#define PS2_MOUSE_SCROLL_BTN_MASK 0
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The available buttons are:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					#define PS2_MOUSE_BTN_LEFT      0
 | 
				
			||||||
 | 
					#define PS2_MOUSE_BTN_RIGHT     1
 | 
				
			||||||
 | 
					#define PS2_MOUSE_BTN_MIDDLE    2
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can also combine buttons in the mask by `|`ing them together.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Once you've configured your scroll button mask, you must configure the scroll button send interval.
 | 
				
			||||||
 | 
					This is the interval before which if the scroll buttons were released they would be sent to the host.
 | 
				
			||||||
 | 
					After this interval, they will cause the mouse to scroll and will not be sent.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					#define PS2_MOUSE_SCROLL_BTN_SEND 300 /* Default */
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To disable sending the scroll buttons:
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					#define PS2_MOUSE_SCROLL_BTN_SEND 0
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Fine control over the scrolling is supported with the following defines:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					#define PS2_MOUSE_SCROLL_DIVISOR_H 2
 | 
				
			||||||
 | 
					#define PS2_MOUSE_SCROLL_DIVISOR_V 2
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Debug settings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To debug the mouse, add `debug_mouse = true` or enable via bootmagic.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					/* To debug the mouse reports */
 | 
				
			||||||
 | 
					#define PS2_MOUSE_DEBUG_HID
 | 
				
			||||||
 | 
					#define PS2_MOUSE_DEBUG_RAW
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Safety Considerations
 | 
					## Safety Considerations
 | 
				
			||||||
 | 
					
 | 
				
			||||||
You probably don't want to "brick" your keyboard, making it impossible
 | 
					You probably don't want to "brick" your keyboard, making it impossible
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue