There are three available modes for hooking up PS/2 devices: USART (best), interrupts (better) or busywait (not recommended).
-### Busywait version
+### The Cirtuitry between Trackpoint and Controller
+
+To get the things working, a 4.7K drag is needed between the two lines DATA and CLK and the line 5+.
+
+```
+
+ DATA ----------+--------- PIN
+ |
+ 4.7K
+ |
+MODULE 5+ --------+--+--------- PWR CONTROLLER
+ |
+ 4.7K
+ |
+ CLK ------+------------ PIN
+```
+
+
+### Busywait Version
Note: This is not recommended, you may encounter jerky movement or unsent inputs. Please use interrupt or USART version if possible.
#endif
```
-### Interrupt version
+### Interrupt Version
The following example uses D2 for clock and D5 for data. You can use any INT or PCINT pin for clock, and any pin for data.
#endif
```
-### USART version
+### USART Version
To use USART on the ATMega32u4, you have to use PD5 for clock and PD2 for data. If one of those are unavailable, you need to use interrupt version.
### Additional Settings
-#### PS/2 mouse features
+#### 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
+#define PS2_MOUSE_USE_REMOTE_MODE
/* Enable the scrollwheel or scroll gesture on your mouse or touchpad */
#define PS2_MOUSE_ENABLE_SCROLLING
void ps2_mouse_set_sample_rate(ps2_mouse_sample_rate_t sample_rate);
```
-#### Fine control
+#### 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_V_MULTIPLIER 1
```
-#### Scroll button
+#### 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.
#define PS2_MOUSE_SCROLL_DIVISOR_V 2
```
-#### Debug settings
+#### Invert Mouse and Scroll Axes
+
+To invert the X and Y axes you can put:
+
+```
+#define PS2_MOUSE_INVERT_X
+#define PS2_MOUSE_INVERT_Y
+```
+
+into config.h.
+
+To reverse the scroll axes you can put:
+
+```
+#define PS2_MOUSE_INVERT_H
+#define PS2_MOUSE_INVERT_V
+```
+
+into config.h.
+
+#### Debug Settings
To debug the mouse, add `debug_mouse = true` or enable via bootmagic.